對此,首先需要熟悉一些python基本的字串操作。
在python中,字串用引號('或")來表示,並可通過類似陣列的方式進行索引,對此我們先建立乙個字串
>>
> test =
"txt檔案csdn.com清csd.com洗csdn.com"
>>
> test[:2
]'tx'
>>
>
我們要做的就是刪除字串中所有的"csdn.com"。
python中提供了字串替代函式replace
,即只需將"csdn.com"替換為空字串即可。
>>
> test.replace(
"csdn.com",""
)'txt檔案清洗'
python的正規表示式re
模組提供了sub
方法可以實現這一功能
>>
>
import re
>>
> test =
"txt檔案csdn.com清csd.com洗csdn.com"
>>
> new = re.sub(r'[a-za-z0-9]+.com',''
,test)
>>
> new
'txt檔案清洗'
上述正規表示式中,
表示出現在
中的某個元素,[a-za-z0-9]
表示從a到z,從a到z,從0到9的所有字元,即大小寫字母以及數字。+
表示出現大於一次的任意次數。總的來說,就是當.com
之前出現任意字母和數字時,將這些字母數字連同.com
一起刪除。
在pyhton中,檔案讀取操作通過open
來實現。
>>
> test =
"txt檔案csdn.com清csd.com洗csdn.com"
## 建立txt檔案
>>
> fname =
"test.txt"
#此為檔名
>>
>
file
=open
(fname,
"w")
>>
>
file
.write(test)
#寫入檔案內容
30>>
>
file
.close(
)##自此便建立了
## 讀取txt檔案
>>
>
file
=open
(fname,
'r')
>>
> txt =
file
.read(
)>>
> txt
'txt檔案csdn.com清csd.com洗csdn.com'
函式open
的輸入引數,除了有檔名之外,還有模式。當模式為'r'
時,表示我們對檔案內容進行讀取;當模式為'w'
時,表示寫入檔案。
此外,還有下列不同的模式。
flag
mode備註r
唯讀模式
w只寫模式
可建立,會覆蓋
a追加模式
只寫,且從尾部開始
r+讀寫模式
可讀可寫不可建立
w+讀寫模式
可讀可寫可建立
a+讀寫模式
可讀可寫可建立,從尾部寫
rb二進位制讀模式
wb二進位制寫模式
ab二進位制追加模式
rb+二進位制讀寫模式
wb+二進位制讀寫模式
ab+二進位制讀寫模式
試一下追加模式
>>
> fname =
"test.txt"
>>
> test =
"txt檔案csdn.com清csd.com洗csdn.com"
>>
>
file
=open
(fname,
'a')
>>
>
file
.write(
'\n'
+test)
#'\n'為換行
31>>
>
file
.close(
)
此時開啟test.txt,發現檔案中的內容變為
txt檔案csdn.com清csd.com洗csdn.comtxt檔案csdn.com清csd.com洗csdn.com
file.read()
會將檔案中的所有字元同時讀取出來,如果我們希望只讀取一行,可以通過readline()
函式。
>>
> fname =
"test.txt"
>>
>
file
=open
(fname,
'r')
>>
> txt =
file
.readline(
)>>
> txt
'txt檔案csdn.com清csd.com洗csdn.com'
在python中,匯入os
模組,通過listdir
遍歷目錄下所有檔案,其輸入引數為將要遍歷的目錄,如果為空,則表示當前目錄。
>>
>
import os
>>
> dirs = os.listdir(
)>>
> dirs
['01亞馬孫探險.txt'
,'02南海奇遇.txt'
,'03海底尋寶.txt'
,'04勇探火山口.txt'
,'05惡戰殺人鯨.txt'
,'06非洲歷險.txt'
,'07巧捕白象.txt'
,'08獵場剿匪.txt'
,'09追蹤食人獅.txt'
,'10智擒大猩猩.txt'
,'11神秘海底城.txt'
,'12闖入食人國.txt'
,'13智鬥猛獸.txt'
,'14北極探險.txt'
]
讀取之後,發現我們此前的判斷失誤了,
>>
>
file
=open
(dirs[0]
,'r'
)>>
> txt =
file
.readline(
)>>
> txt
這種冗餘資訊完全不是乙個正規表示式可以實現的,所以還是用老舊的方法吧,考慮到這種資訊不一定出現在單獨一行,所以我們刪除的資訊不包含換行符。
>>
>
for fname in dirs:..
.file
=open
(fname,
'r')
#讀取檔案..
. test =
file
.read(
).replace(txt[:-
1],''
)...
file
=open
(fname,
'w')..
.file
.write(test)..
.file
.close(
)
然後,資料夾下所有的txt就完成了清洗。
import re
deftxtpure
(dlist,folder=0)
: dirs = os.listdir()if
not folder else os.listdir(folder)
for fname in dirs:
file
=open
(fname,
'r')
test =
file
.read(
)for txt in dlist:
test = test.replace(txt,'')
file
=open
(fname,
'w')
python 讀寫文字檔案
本人最近新學python 用到文字檔案的讀取,經過一番研究,從網上查詢資料,經過測試,總結了一下讀取文字檔案的方法.a f open filename r content f.read decode utf 8 b f codecs.open encoding utf 8 content f.rea...
Python讀取文字檔案
給定c data hello.txt,內容如下 jack hello,how are you?rose i m good.按行讀取 filepath r c data hello.txt with open filepath as txtfile for line in txtfile print ...
Python 讀寫文字檔案
def readfile filename,mode r 讀取檔案內容 filename 檔名 return string bin 若檔案不存在,則返回空字串 import os if not os.path.exists filename return fp open filename,mode,...