[英]Printing no output to a text file in python while reading specific lines
我想將文件的每三行(從第2行開始)打印到新文件。 文件( line.txt
)的示例是
line1
line2
line3
line4
line5
line6
line7
line8
line9
line10
line11
輸出將是
line2
line5
line8
line11
我寫的腳本是
with open ('line.txt') as file:
for line in file.read().split("\n")[1::3]:
print (line)
f = open('output.txt','w')
f.write(line)
f.close()
但是,什么也沒有復制到output.txt file
。 output.txt
保留為空白。 即使我在python IDLE中運行腳本后print
了該line
,該line
返回空白''。 但是在運行腳本期間,輸出是所需的輸出,即
line2
line5
line8
line11
任何幫助或提示將不勝感激!
您正在關閉output.txt文件,並在每次循環時再次打開它。 我建議把這些放在循環之外:
with open('output.txt', 'w') as f:
with open ('line.txt', 'r') as file:
for line in file.readlines()[1::3]:
print(line)
f.write(line)
注意:我還在寫語句中添加了+'\\n
以在您的output.txt中包含行尾
編輯:正如@DeepSpace正確指出的那樣,您最好將with open()
與文件和readlines()
而不是read().split('\\n')
。 with open()
使用時with open()
無需記住將其關閉。
with open ('line.txt') as file:
f = open('output.txt','w')
for line in file.read().split("\n")[1::3]:
outputline=line
f.write(outputline)
f.close()
以下腳本根據您的描述寫入文件output.txt
, 我希望將每 output.txt
(從第2行開始)從文件打印到新文件
output_file = open("output.txt", "a")
with open ('line.txt') as file:
for line in file.readlines()[1::3]:
output_file.write(line)
output_file.close()
我使用readlines()
而不是read()
因為它讀取整行而不是讀取單個字符串。 另外,我使用的是"a"
而不是"w"
打開文件,因為追加模式允許您將內容追加到文件中。 使用"w"
您覆蓋了循環的每個迭代。 希望對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.