python 檔案處理總結

來源:互聯網
上載者:User

標籤:truncate   截斷   gbk   for   字幕   大寫   輸出   讀取檔案   cat   

例如讀取檔案名稱為:poem.txt 並且字元編碼為 gbk

內容:

北國風光,千裡冰封,萬裡雪飄。
望長城內外,惟餘莽莽;大河上下,頓失滔滔。
須晴日,看紅裝素裹,分外妖嬈。
江山如此多嬌,引無數英雄競折腰。
惜秦皇漢武,略輸文采;唐宗宋祖,稍遜風騷。
一代天驕,成吉思汗,只識彎弓射大雕。
俱往矣,數風流人物,還看今朝。

1.讀取檔案內容

f = open(‘poem.txt‘,‘r‘,encoding = ‘gbk‘)

data = f.read()

f.close()

或者為了代碼更佳簡潔,不必調用f.close()方法:

with open(‘poem.txt‘,‘r‘,encoding = ‘gbk‘) as f:

  print(f.read())

 

注意:read()方法會一次性把所有內容讀取出來返回一個str,還有其他的讀取方式,例如:

read(size):每次最多讀取指定字元長度的內容,返回一個str

readlines():一次讀取檔案所有內容,按行返回一個list

readline():每次唯讀取一行內容

 

2.寫入檔案

f = open(‘poem.txt‘, ‘w‘,encoding=‘gbk‘)

f.write(‘Hello‘)

f.close()

或者

with open(‘poem.txt‘, ‘w‘, encoding=‘gbk‘) as f:

  print(f.write(‘hello‘))

 

3. 如果想要只列印檔案中某個字,例如列印“望”:

with open(‘poem.txt‘,‘r‘,encoding=‘gbk‘) as f:

  f.seek(32)

  print(f.read(1))

輸出結果:

#seek(): 把操作檔案的游標移到指定位置,但是seek的長度是按位元組算的,

字元編碼存每個字元所佔的位元組長度不一樣。例如gbk中兩個位元組為一個字。

 

4.  如果要想刪除某些內容,例如刪除此詩的第二行:

import os
file_name = ‘poem.txt‘
new_file_name = ‘new_poem.txt‘
str = ‘山舞銀蛇,原馳蠟象,欲與天公試比高。‘
f = open(file_name,‘r‘,encoding=‘gbk‘)
f_new = open(new_file_name,‘w‘,encoding=‘gbk‘)

for i in f:
if str in i:
i = ‘‘
f_new.write(i)
else:
f_new.write(i)
f.close()
f_new.close()

os.replace(new_file_name,file_name)

#建立一個檔案,把改好的內容寫入新檔案,最後用新檔案替換老檔案

 或者

poem = []
with open(‘poem.txt‘,‘r+‘,encoding=‘gbk‘) as f:
for line in f:
poem.append(line)
poem.pop(1)
f.seek(0)
f.truncate()
for i in poem:
a = i
f.write(a)

#把內容放進記憶體,在列表中修改後,清空原檔案再寫入內容
truncate([size]):截取檔案中指定位元組數的內容,指定長度的話,就從檔案的開頭開始截斷指定長度,其餘內容刪除;
不指定長度的話,就從檔案開頭開始截斷到當前位置,其餘內容刪除。


5.把字串"Luffy",將小寫字母全部轉換成大寫字母,將大寫字幕轉換成小寫字幕,然後輸出到一個檔案"test.txt"中儲存。
a = "Luffy"
with open(‘test.txt‘,‘w‘,encoding = ‘utf-8‘) as f:
f.write(a.swapcase())

#s.swapcase(): 方法用於對字串的大小寫字母進行轉換


 

python 檔案處理總結

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.