我试图使用python脚本修改多个文本文件,但我得到的不是全部,而是一些空文件作为输出。如何解决这个问题?你知道吗
def tratador_arquivo(arquivo):
with open(arquivo, 'r+',encoding="utf8") as inputtext:
for ponto in inputtext:
saida="saida_"+arquivo
with open(saida, 'w') as saidatemp:
saidatemp.write(ponto.replace('. ','.\n'))
import os
pasta = os.listdir('/Users/gabri/Desktop/Textos Imóveis')
os.chdir('/Users/gabri/Desktop/Textos Imóveis')
for arquivo in pasta:
tratador_arquivo(arquivo)
看看你的循环:
这会一次又一次地重新打开同一个文件,对输入文件的每一行打开一次。因为您是在
w
模式下打开它的,所以它会截断文件,删除您以前在那里编写的任何内容,并用(转换的)最新行替换它。因此,在循环结束时,输出文件只有输入文件的最后一行(已转换)。你知道吗这可能永远都是错误的(虽然当我不知道你到底想做什么的时候很难说清楚)。但是在输入文件以空行结尾的情况下,它的错误将特别明显,因为输出文件中唯一的东西就是那空行。你知道吗
你可能想做的是:
换言之,只需打开一次文件,并不断向其写入新行。你知道吗
展开abarnert的答案,您可以得到如下完整代码:
还要注意您提供的代码中函数内容的缩进错误。你知道吗
相关问题 更多 >
编程相关推荐