Python_文件操做

opening and closeing

'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() # 關閉

reading and writing

f = open()

f.read()
f.read(2) # 參數: 文件讀取的字符數
f = open()

f.write('write in char') # 參數:寫入的字符串

'\n' # 回車換行
'\t' # 橫向跳到下一製表符位置
'\r' # 回車

copy

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)
相關文章
相關標籤/搜索