Python讀取文字檔案

2021-10-10 19:24:37 字數 1883 閱讀 7332

給定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

(line)

這種讀取方式不好,因為會帶有末尾的換行符,所以讀取出來是這個效果:

jack: hello, how are you?

rose: i'm good.

顯然,第1行的內容末尾的換行符也讀取出來,導致讀取的時候會多乙個空行。

解決的辦法很簡單,使用rstrip()函式即可,即line.rstrip()

或者也可以使用readlines()直接讀取全部的行。

lines =

with

open

(r'c:\data\hello.txt'

)as txtfile:

lines = txtfile.readlines(

)for line in lines:

print

(line.rstrip(

))

def

readlines

(filepath)

:'''

從文字檔案中讀取文字內容,

'''lines =

ifnot os.path.exists(filepath)

:return lines

try:with

open

(filepath,

'r', encoding =

'utf-8'

)as f:

lines = f.readlines(

)except exception:

with

open

(filepath,

'r', encoding =

'gbk'

)as f:

lines = f.readlines(

)return lines

這種方式實際上是先嘗試使用 utf8讀取,失敗讀取失敗再換成 gbk。

filepath = r'c:\data\hello1.txt'

with

open

(filepath,

'w')

as txtfile:

txtfile.write(

"hello\n"

) txtfile.write(

"how are you?"

)

如果是追加模式,使用open(filepath, 'w')

1、編碼問題

只需在開啟時新增 encoding 引數,比如:open(filepath, 'r', encoding='utf-8')'

2、異常處理

try

:print

("do something"

)except runtimeerror:

print

('error info'

)else

:# optional

print

('else'

)

讀取文字檔案

void ctestdlg onreadinfo cfile filewrite1 testwrite1.txt cfile modecreate cfile modewrite cfile filewrite2 testwrite2.txt cfile modecreate cfile modew...

Python 讀取txt文字檔案

python的文字檔案的內容讀取中,有三類方法 read readline readlines 這三種方法各有利弊。read read 的弊端 readline readline 的弊端 readlines readlines 的利端 readlines 的弊端 最簡單 最快速的逐行處理文字的方法 ...

Python讀取大型文字檔案

最近磕鹽過程中需要處理乙個大型文字檔案,大約70g。在按行讀取檔案過程中遇到了載入慢,記憶體占用過高的問題。經過查詢資料最終解決了問題。趁此機會也大致總結比較一下python開啟檔案的幾種方式。f open filename,r lines f.readlines for line in lines...