我試圖打印行和文本/ html文件的行中替換單詞,但無法這樣做,因爲python(2.7)正在逐字符讀取它的字符。我究竟做錯了什麼?蟒蛇打印每一個字符在新行
下面是代碼和輸出:
3210我應該得到的輸出(顯示在這裏只有第一行):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
輸出我得到:
<
!
D
O
C
T
Y
P
E
.
.
.
我試圖打印行和文本/ html文件的行中替換單詞,但無法這樣做,因爲python(2.7)正在逐字符讀取它的字符。我究竟做錯了什麼?蟒蛇打印每一個字符在新行
下面是代碼和輸出:
3210我應該得到的輸出(顯示在這裏只有第一行):
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
輸出我得到:
<
!
D
O
C
T
Y
P
E
.
.
.
你應該儘量file.readlines()
而不是作爲如下:
infile = open('filename').readlines()
for line in infile:
print line
This循環遍歷每行而不是文件中的每個字符。
Output: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
謝謝!完美的作品 – dsauce
@PreritAhuja:很高興你發現兩個答案都有幫助;對不起,你只能將** 1 **標記爲已接受。 –
您正在循環一個字符串,這會產生單個字符。
不要讀一氣呵成文件,只需遍歷文件對象:
with open('filename') as infile:
for line in infile:
print line
我使用的文件作爲上下文管理在這裏也(with open(..) as localname
);當with
塊退出時,Python現在會自動關閉該文件。
根據需要循環讀取文件對象,避免將整個文件讀入內存。
其他的選擇是閱讀與file.readlines()
method一氣呵成作爲單獨的行文件:
infile = open('filename').readlines()
或讀取數據與str.splitlines()
分裂:
infile = open('filename').read().splitlines()
提示1:遍歷文件每次都會給你一條線,並遍歷字符串爲您提供了一個字符每次。提示2:'infile'不是一個文件,它是一個字符串。 – Kevin