對文件的操做python
一、打開文件,獲取句柄編碼
二、根據句柄操做文件spa
三、關閉文件指針
現有文檔 poem.txtcode
一天很短, 短得來不及擁抱清晨, 就已經手握黃昏。 一年很短, 短得來不及細品初春殷紅竇綠, 就要打點素裹秋霜。 一輩子很短, 短的來不及享用美好年華, 就已經身處遲暮。 老是通過的太快, 領悟的太晚, 咱們要學會珍惜。 珍惜人生路上的親情、友情、 同事情、同窗情、朋友情。 一旦擦身而過, 也許永不邂逅
對文件的基礎操做blog
1 R = open('poem.txt', 'r') #以只讀的發方式打開文件,能夠不加'r',默認是隻讀 2 3 first_line = R.readline() #讀取文件第一行,返回一個list 4 5 print(first_line) 6 7 Res = R.read() #獲取除了第一行外餘下的段落 8 9 print(Res) 10 11 R.close()
打開文件的模式內存
1 r #只讀(默認) 3 w #只寫【不可讀,不存在則建立,存在則刪除內容】 5 a #追加【不可讀,不存在則建立,存在則只追加內容】
‘+’ 表示能夠同時讀寫utf-8
1 r+ [可讀、可寫、可追加,若是打開的文件不存在,則報錯] 2w+ [寫讀模式,已經存在的內容清空,能夠讀到寫的內容] 3 a+ [追加讀寫模式,不存在則建立,存在則只追加內容] rem
文件的操做方法文檔
1 R = open('poem.txt', 'r+', encoding = 'utf-8') 2 3 R.readline() #讀第一行 4 5 R.readable() #判斷文件是否可讀,返回一個布爾類型 6 7 R.writable() #判斷文件是否可寫,返回一個布爾類型 8 9 R.encoding #打印文件編碼格式 10 11 R.read() #讀取全部文件內容,若是文件過大,慎重使用 12 13 R.readlines() #讀取全部文件,返回一個list,元素是每行內容,慎重使用 14 15 R.tell() #獲取當前文件的指針指向 16 17 R.seek() #把當前文件指向某個指針 18 19 R.write('短') #寫入當前內容 20 21 R.flush() #寫入文件後,當即從內存將內容寫到磁盤 22 23 R.truncate() #清空文件內容 24 25 R.readlines(['短', '俄羅斯']) #將一個列表寫入 26 27 R.close() #關閉文件
大文件的高效操做方法
1 R = open('poem.txt') 2 3 for line in R: 4 5 print(line)
with 使用
1 with open('poem.txt') as P: 2 3 for line in P: 4 5 print(line) 6 7 with open('poem.txt') as Pr, with open('poem_bak.txt', 'w') as Pw: 8 9 for line in Pr: 10 11 Pw.write(line)
集合:也是一種數據類型,特色是無序
1 number = [1, 2, 4, 5, 2, 4, 6] 2 3 s_number = set(number) #列表轉變成集合 4 5 number1 = set([1, 2, 4, 5, 2, 4, 6]) #同上 6 7 number2 = {'linda', 'bluce', 'jack', 'rose'} #直接定義集合
集合的操做
1 number1 = {1, 3, 4, 5, 2, 8} 2 3 number2 = {2, 4, 9, 1} 4 5 number3 = {1, 4, 2} 6 7 print(number1.intersection(number2)) #取交集 8 9 print(number1 & number2) #取交集 10 11 print(number1.union(list2)) #取並集 12 13 print(number1 | number2) #取並集 14 15 print(number1.difference(number2)) #取差集,number1中存在,number2中不存在 16 17 print(number1 - number2) #取差集 18 19 print(number3.issubset(number1)) #判斷number3是否是number1的子集 20 21 print(number1.issuperset(number3)) #判斷number1是否是number3的父集 22 23 print(number1.isdisjoint(number2)) #判斷是否有交集 24 25 print(number1.symmetric_difference(number2)) #對稱差集,輸出兩個集合都沒有的值 26 27 print(number1 ^ number2) #同上 28 29 number1.add(12) #添加元素 30 31 number1.update([24, 25, 26]) 32 33 number1.remove(2) #移除 34 35 number1.pop() #隨機刪除,並返回刪除元素 36 37 number.discard('tom') #存在刪除,不存在不作處理