11. 文件基本操做、上下文管理、IO流、使用工具

   文件基本操做   

1、文件

持久儲存:python

保存內存中數據都是易丟失的,只有保存在硬盤中才能持久的存儲,保存在硬盤中的基本方法就是把數據寫入文件中工具

file = open("text.txt","w+")               #打開文件
file.write("hello python !!!")             #寫入文件
file.flush()                               #保存文件
print(file.tell())                         #查看文件指針
print(file.seek(0))                        #移動文件指針
print(file.read())                         #讀取文件
print(file.readline())                     #每次只能讀取一行
# print(file.readlines() )                 #把每一行的內容讀取出來當成一個元素,放到一個列表裏面
file.close()                               #關閉文件


16
0
hello python !!!
with open("text.txt","w+") as f:           #不須要關閉  會對文件自動保存和關閉
    f.write("hello python !!!")
    f.flush()
    f.tell()
    f.seek(0)
    print(f.read())

hello python !!!

2、文件打開的模式

3、其餘模式

 rb   rb+     wb     wb+    ab    ab+ spa

加個b的做用:以二進制的格式打開文件,進行上述操做 。操作系統

     上下文管理     

 

經過這兩個方法能夠方便的實現上下文管理 指針

with會把 __enter__ 的返回值賦值給 as 後的變量code

 

class MyClass:       #上下文管理器

    def __enter__(self):        #進入   進入時須要執行的代碼,至關於準備工做
        print("開始運行的時候調用了我")
        return "開始了"
    def __exit__(self, exc_type, exc_val, exc_tb):       #退出  退出時須要執行的代碼,至關於收尾工做

        print("結束運行的時候調用了我")

with MyClass() as a:   #使用with打開文件,則文件不須要本身關閉,會自動的關閉
    print(a)
    for i in range (1,6):
        print(i)

開始運行的時候調用了我
開始了
1
2
3
4
5
結束運行的時候調用了我

           IO流          

1、StringIO

 

StringIO在內存中如同打開文件同樣操做字符串,所以也有文件的不少方法 blog

當建立的StringIO調用 close() 方法時,在內存中的數據會被丟失接口

import io
sio = io.StringIO          #建立IO操做
sio.write('hello python')           #寫入

# sio.seek(0)
# print(sio.read())
print(sio.getvalue())         #讀取
sio.close()

2、BytesIO

BytesIO 和 StringIO 相似,可是BytesIO操做的是 Bytes數據ip

import io
sio = io.BytesIO           #建立IO操做
sio.write(b"abcd")           #寫入

# sio.seek(0)
# print(sio.read())
print(sio.getvalue())         #讀取
sio.close()

       使用工具       

1、os 操做系統交互

        os 模塊提供python和操做系統交互的接口內存

os 提供了Python和操做系統交互方式,只要是和操做系統相關,就能夠嘗試在os模塊中找方法

import os
os.system("ls")       #直接調用系統命令
os.system("pwd")
#通用路徑操做
import os
os.path
<module 'posixpath' from '/usr/lib/python3.5/posixpath.py'>
os.path.join("/home/pyvip","py_case1")
'/home/pyvip/py_case1'
#文件目錄操做
os.mkdir("/home/pyvip/projects/home/pyvip/projects/基礎班/ly")
os.rename("ly","ly1")

2、shutil 高級文件操做

        shutil 模塊提供了許多關於文件和文件集合的高級操做

import shutil
shutil.copytree("ly1","lll")          #複製文件件
shutil.move("with.py","lll")        #移動文件
shutil.rmtree("lll")                     #刪除文件夾
相關文章
相關標籤/搜索