1.創(chuàng)建文件對象
file()函數(shù)與open()具有相同的功能称勋,完全可替換贰盗,建議使用open
file_object=open(file_name,access_mode='r',buffering=-1)
access_mode的值,不寫時默認是以r的方式打開
? ? ? ? ? ? r ? ? ? ? ? ? ? ? ?以讀的方式
2.輸入--------即從文件讀取內(nèi)容到內(nèi)存
查看各種函數(shù)的使用:help(file.read)
f.read([size]):從文件中讀取多少個字節(jié)荒给,如果不寫size表示讀取到文件的結(jié)束位置
f.readline([size]):讀取一行內(nèi)容沙峻,包括行結(jié)束符益涧。size默認為-1箩祥,表示讀到行結(jié)束符院崇。
size小于一行的長度時,讀取size個字節(jié)袍祖,size大于一行的長度時底瓣,讀取一整行。讀到文件結(jié)束位置時蕉陋,返回空字符串捐凭。
f.readlines([size]):讀取所有行,生成字符串列表凳鬓。
3.輸出----------即將內(nèi)存的數(shù)據(jù)寫入到文件
f.write(string):寫入字符串到文件
f.writelines(sequence_of_strings):寫入多行茁肠,需要手動添加換行符。沒有writeline方法
在讀取行時缩举,會有換行符垦梆,通過line.strip()刪除換行符
4.文件內(nèi)移動
f.seek(offset[,whence]):offset偏移的字節(jié)數(shù),whence是相對位置仅孩,0表示從文件開始位置奶赔,1表示當(dāng)前位置,2表示文件末尾
f.tell() 文件指針在第幾個字符位置
5.文件迭代
使用文件迭代的方法避免了readlines方法中將所有行讀到內(nèi)存杠氢,內(nèi)存消耗比較大站刑。
使用文件迭代時每次只讀取一行。
-------------------------------------
for i in f.readlines(5):
print i
-----------------------------------
簡化后直接使用文件迭代
f=open('F:\\write.txt','r')
for line in f:
print line
6.os模塊中有一些關(guān)于文件的屬性
fobj.write('%s%s'% (aLine,os.linesep))
print后面會自動加上換行符鼻百,readline()和readlines()會讀取到文件的換行符绞旅,所有在使用print打印行時,要加上逗號温艇,去除print的換行符
7.file對象內(nèi)建方法
8.文件對象的屬性
9.標準文件
執(zhí)行文件時因悲,默認會打開三個文件:
標準輸入:文件句柄為sys.stdin,raw_input()從sys.stdin接收輸入
標準輸出:sys.stdout,print語句就是將內(nèi)容輸出到sys.stdout
標準錯誤:sys.srderr
10.命令行參數(shù)
sys.argv是命令行參數(shù)的列表
len(sys.argv):命令行參數(shù)的個數(shù)
sys.argv[0]是程序文件:即C:/Users/huan.tang/Desktop/test.py
python C:/Users/huan.tang/Desktop/test.py 1? 2? "ajkjkfj"
11.文件系統(tǒng)
對于不同的操作系統(tǒng),文件系統(tǒng)也不同勺爱。但只需要導(dǎo)入os模塊python就會選擇正確的模塊晃琳。
os模塊對文件系統(tǒng)的操作,包括文件和目錄的操作
os.path模塊對路徑的操作