我有以下内容,无论我在输入文件中有什么,最后给我一个空文件,但我不知道为什么,所以我想请求你的帮助,如果可能的话,谢谢
import re
import sys
import os
if len(sys.argv) > 1 :
inf = sys.argv[1]
if os.path.isfile(inf) :
pass
else :
print "Nincs ilyen file!"
sys.exit(0)
else :
print "Nincs argumentum!"
infile = open(sys.argv[1],"r")
outfile = open("out.txt","w")
for t in infile :
lista = t.split(";;;")
for i in range(0,len(lista)):
if lista[i] == "begin" :
outfile.write("def "+lista[i-1]+"\n")
elif lista[i] == "end;" :
outfile.write(lista[i+1]+"\n")
else :
outfile.write(" "+lista[i]+"\n")
编辑:
我甚至试过把它写入输出文件,但它仍然没有做任何事情。
答案 0 :(得分:2)
完成写入后,请不要忘记关闭输出文件。否则你的写语句将不会被保存。
在您的脚本结束时添加:
outfile.close()
最佳做法也是关闭您正在阅读的所有文件。
答案 1 :(得分:1)
在检查任何行之前,您已阅读整个文件。因此lista
代表文件的 last 行。您可能希望第二个for
循环缩进 in 第一个循环,以便它为文件的每一行运行,而不仅仅是最后一行。
另外,请不要for i in range(...)
访问列表,这会让小耶稣哭泣。 for item in lista
会更好,然后你只需要测试if item == "begin"
等等。