io操作
阿新 • • 發佈:2018-05-29
網絡 gbk home str world! finall 實現 .get rmdir
序列化 反序列化(為了存儲和加載)
JSON 類型(本地存儲和網絡加載)
一 文件的讀寫
>>> f = open(‘/home/denny/text.txt‘, ‘r‘) >>> f.read() ‘hello world‘ >>> f.close() open函數傳入 文件路徑/文件名, 標識符 就打開的文件(標識符可以是 r rb<二進制文件,圖片視頻等>) 如果文件不存在就會出現段錯誤 可以用try ... finally 來實現 try: f = open(‘/home/denny/test.txt‘, ‘r‘) print(f.read()) finally: if f: f.close() try ... finally 的升級版 with open(‘/home/denny/test.txt‘, ‘r‘) as f: print(f.read()) read() 一次讀完所有內容 readline() 一次讀一行 readlines() 一次讀完並將所用的內容按行返回list
通常open文件的時候,如果文件不是utf-8 編碼的,通常會傳入字符編碼 >>> f = open(‘/home/denny/gbk.txt‘, ‘r‘, encoding=‘gbk‘) 如果文件中有其他 不規範的編碼,可以做到或略錯誤 >>> f = open(‘/home/denny/gbk.txt‘, ‘r‘, encoding=‘gbk‘,errors = ‘ignore‘)二 寫文件
>>> f = open(‘/home/denny/test.txt‘, ‘w‘) >>>f.write("hello, world") >>>f.close() with open(‘/home/denny/test.txt‘,‘w‘) as f: f.write(‘hello, world!‘) StringIO<內存中讀寫string>和 BytesIO<內存中讀寫bytes> 基本程序 from io import StringIO f = StringIO() f.write(‘hello’) f.write(‘‘)
print(f.getvalue()) from io import BytesIO f = ByteIO() f.write(‘中文‘.encode(‘utf-8‘)) print(f.getvalue())目錄操作
import os os.mkdir("/home/denny/testdir") os.rmdir(‘/home/denny/testdir‘) 路徑合並 os.path.join(‘/home/denny‘,‘testdir‘) linux 和 window不一樣 斜杠方向 路徑拆分 os.path.split(‘/home/denny/testdir.txt‘) (‘/home/denny/testdir‘,‘.txt‘) 重命名 os.rename(‘test.txt‘,‘test.py‘) os.remove(‘test.py‘)
io操作