'buffer', 'close', 'closed', 'detach', 'encoding', 'errors', 'fileno', 'flush', 'isatty', 'line_buffering', 'mode', 'name', 'newlines', 'read', 'readable', 'readline', 'readlines', 'seek', 'seekable', 'tell', 'truncate', 'writable', 'write', 'writelines'
打開
open('file', 'modes') # file: 支持相對路徑或絕對路徑 open('a.txt', 'r') # modes: 'r' # 打開只讀 (默認) (文件必須存在, 不然會拋出錯誤) 'w' # 寫入,若是文件存在,將其覆蓋,文件不存在,建立新文件 'x' # 建立一個新文件並打開它以便編寫 'a' # 追加,若是文件存在,內容會被寫入到已有內容的後邊,文件不存在,則建立新文件 'b' # 二進制模式 't' # 文本模式(默認) '+' # 打開磁盤文件以進行更新(讀寫) # combination: 'rb' # 以二進制格式打開一個文件,文件指針將會放在文件開頭 (默認) 'wb' # 二進制格式打開寫入文件,若是文件存在,將其覆蓋,文件不存在,建立新文件 'ab' # 視頻文件, 圖片文件, pdf文件, 音頻文件 須要帶modes中的b 'r+' # 打開一個文件用於讀寫 'w+' 'a+' 'rb+' # 以二進制格式打開一個文件用於讀寫,文件指針將會放在文件的開頭 'wb+' 'ab+'
關閉
f = open() f.close() # 關閉
讀
f = open() f.read() f.read(2) # 參數: 文件讀取的字符數
寫
f = open() f.write('write in char') # 參數:寫入的字符串 '\n' # 回車換行 '\t' # 橫向跳到下一製表符位置 '\r' # 回車
f1 = open() content = f1.read() name = f1.name f2 = open(name[:name.rfind('.')] + '.bak') f2.write(content) f1.close() f2.close()
讀取大文件的時候,禁止使用read()
, readline()
, readlines()
方法讀取.url
讀取小部份內容,屢次讀取
f1 = open() while True: content = f1.read(1024) if not content: break
with open()
# 若是文件是基於行的 with open(...) as f: for line in f: process(line)
fileinput處理
import fileinput for line in fileinput.input(['xxx.log']): print line
seek()
:指針偏移量tell()
: 指針所在位置指針
seek(offset, from) offset # 偏移量 (指針移動) from # 方向[0: 文件開頭, 1: 當前位置, 2: 文件末尾]
f = open() f.seek(2, 0) f.readline() f.close()
依靠os
內置模塊, 完成系統相關操做code
文件重命名
import os os.rename('old_name', 'new_name')
刪除文件
import os os.remove('file_name') # file_name 待刪除的文件
建立文件夾
import os os.mkdir('folder') # folder 文件夾名字
獲取當前目錄
import os os.getcdw() # 返回當前文件所在的絕對路徑
獲取目錄列表
import os os.listdir('url') # url 列表路徑 os.listdir('./')
刪除文件夾
import os os.rmdir('folder') # folder 待刪除的文件夾
改變默認目錄
import os os.chdir('../') # open() 建立在當前目錄下,能夠改變默認目錄,使建立到其它目錄下
方法1:
注意重命名的路徑問題視頻
import os folder_name = input('input name:') file_names = os.listdir(folder_name) os.chdir(folder_name) # 跳轉至指定目錄 for name in file_names: _name = name[:name.rfind('.')] + '-tt-' + name[name.rfind('.'):] os.rename(name, _name)
方法2:圖片
import os folder_name = input('input name:') file_names = os.listdir(folder_name) for name in file_names: old_file_name = folder_name + '/' + name new_file_name = folder_name + '/' + 'haha' os.rename(old_file_name, new_file_name)