我有以下python代码,其目的是从输入文本文件中删除空行。它应该返回一个输出文件,删除了所有的空行,但它没有。有什么问题?谢谢你
import sys
def main():
inputFileName = sys.argv[1]
outputFileName = sys.argv[2]
inputFile = open(inputFileName, "r")
outputFile = open(inputFileName, "w")
for line in inputFile:
if "\n" in line:
removeBlank = line.replace("\n", "")
outputFile.write(removeBlank)
else:
outputFile.write(line)
inputFile.close()
outputFile.close()
main()
目前,您的代码似乎在打开输入文件后立即将其截断。充其量,这可能会在不同的平台上产生不同的结果。在某些平台上,文件可能为空。我认为打开输入文件进行写作是一个打字错误
解决这个问题的更好方法是使用生成器。另外,空行的正确测试是
line == '\n'
,而不是'\n' in line
,这将适用于除最后一行之外的所有返回行您可以这样使用:
with
语句中的上下文管理器将确保您的文件正确关闭,而无需进一步操作你的代码有很多问题。特别是你用空行检查的情况。人们正确地指出了一些问题
下面是应该工作的解决方案,并生成没有空行的输出文件
相关问题 更多 >
编程相关推荐