python的文件操縱方法: file.readline() 讀取下一行文件,返回含有內容的字元串 file.readlines() 讀取整個文件,返回一個字元串列表 file.read() 讀取整個文件,返回一個字元串 f = open("filename","mode") 打開一個文件,mode ...
python的文件操縱方法:
file.readline() 讀取下一行文件,返回含有內容的字元串
file.readlines() 讀取整個文件,返回一個字元串列表
file.read() 讀取整個文件,返回一個字元串
f = open("filename","mode") 打開一個文件,mode 有:"r",'rb','r+','w','wb','a','ab'
打開文件進行操作後,需要關閉文件,釋放記憶體,文件才會導入到磁碟中,才會顯示變化
f.close() 關閉文件
wih open("filename","mode") as f :
f.readlines()
這種方法不用關閉文件。還不知道原理是什麼.....
f.write() 寫入一個字元串到文件中
f.writelines() 對列表進行操作,支持字元串列表
1 #AddressBook.py 2 #將‘TeleAddressBook.txt’和‘EmailAddressBook.txt’中的數據合併 3 4 def main(): 5 #打開文件 6 f1 = open("TeleAddressBook.txt","rb") 7 f2 = open("EmailAddressBook.txt","rb") 8 #設置空列表 9 list1_name = [] 10 list2_name = [] 11 list1_tel = [] 12 list2_email = [] 13 #跳過第一行 14 a1 = f1.readline() 15 a2 = f2.readline() 16 #讀取文件 17 s1 = f1.readlines() 18 s2 = f2.readlines() 19 #遍歷字元串列表s1,存入相應的列表中 20 for i in s1: 21 e = i.split() 22 list1_name.append(str(e[0].decode("gbk"))) 23 list1_tel.append(str(e[1].decode("gbk"))) 24 #遍歷字元串列表s2,存入相應的列表中 25 for i in s2: 26 e = i.split() 27 list2_name.append(str(e[0].decode("gbk"))) 28 list2_email.append(str(e[1].decode("gbk"))) 29 30 #進行操作 31 lines = [] 32 lines.append("姓名\t電話\t\t郵箱\n") 33 #遍歷list_name列表中的名字,並判斷列表2中是否有該名字,如果有,合併,如果沒有,無郵箱 34 for i in range(len(list1_name)): 35 s = '' 36 if list1_name[i] in list2_name: 37 j = list2_name.index(list1_name[i]) 38 s = '\t'.join([list1_name[i],list1_tel[i],list2_email[j]]) 39 s += '\n' 40 else: 41 s = '\t'.join([list1_name[i],list1_tel[i]," ---- "]) 42 s += '\n' 43 lines.append(s) 44 #操作列表2中剩餘的名字 45 for i in range(len(list2_name)): 46 s = '' 47 if list2_name[i] not in list1_name: 48 s = '\t'.join([list2_name[i],' ----- ',list2_email[i]]) 49 s += '\n' 50 lines.append(s) 51 #將列表寫入對應的文件中,關閉所有文件 52 f3 = open("AddressBook.txt",'w') 53 f3.writelines(lines) 54 f3.close 55 f1.close 56 f2.close 57 58 if __name__ == "__main__": 59 main()
這個程式中的一些函數:
str.join(sequence) 將序列中的元素以指定的字元連接生成一個新的字元串。
str = '-' seq =( 'a',''b','c') print(str.join(seq)) 結果: a-b-c
‘\t' 轉義字元,表示製表符,即四個空格。