Python中的文件讀寫操作:
我想大部分的編程語言的文件讀寫操作都不會有太大差別基本上都是按照以下的步驟執行的:
open打開文件
read,write讀或寫文件
close關閉文件
應牢記使用close關閉文件Python中一般使用以下方式進行文件的讀寫
#open file
try:
read,write
finally:
file.close()#關閉文件
Python中也有專門爲這種情況而設計的語句with語句:
with open("file.txt") as file
do_something(file)
文件會在語句結束後自動關閉文件
with open("F:\\test.txt",'r') as f: print(f.read())
文件模式:
值 | 描述 |
---|---|
'r' | 讀模式 |
'w' | 寫模式 |
'a' | 追加模式 |
'b' | 二進制模式(可添加到其他模式中使用) |
'+' | 讀寫模式(可添加到其他模式中使用) |
f = open("F:\\test.txt",'r') try: str = f.read() print(str) finally: f.close()輸出:
Hello word!
This is a test.
寫文件示例:
f = open("F:\\test.txt",'w') try: str = "write test!" f.write(str) finally: f.close()
文件中寫入:
write test!
當然以上方法只適用於讀取小的文件,如果文件很大一次性讀取文件估計電腦的內存都會被你佔用了故可以調用read(size)方法規定每次讀多少,如果具有換行符可以使用readline的方法按行讀取。
示例:
f = open("F:\\test.txt",'r') try: for char in f.read(): print(char) finally: f.close()
按行讀取:
f = open("F:\\test.txt",'r') try: for char in f.readline(): print(char) finally: f.close()當然有按行讀取就有按行寫入writelines()
使用fileinput實現懶惰迭代:
在需要對一個非常大的文件進行迭代操作時,使用readlines佔用內存太多,這時就可以使用fileinput。
fileinput模塊包含了打開文件的函數,所以只需要傳一個文件名給它
import fileinput,sys file_name = sys.argv[1] for line in fileinput.input(file_name): print(line)此處使用了傳遞參數的方式