空输出文件

时间:2012-06-01 17:43:02

标签: python

我有以下内容,无论我在输入文件中有什么,最后给我一个空文件,但我不知道为什么,所以我想请求你的帮助,如果可能的话,谢谢

    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")

编辑:

我甚至试过把它写入输出文件,但它仍然没有做任何事情。

2 个答案:

答案 0 :(得分:2)

完成写入后,请不要忘记关闭输出文件。否则你的写语句将不会被保存。

在您的脚本结束时添加:

outfile.close()

最佳做法也是关闭您正在阅读的所有文件。

答案 1 :(得分:1)

在检查任何行之前,您已阅读整个文件。因此lista代表文件的 last 行。您可能希望第二个for循环缩进 in 第一个循环,以便它为文件的每一行运行,而不仅仅是最后一行。

另外,请不要for i in range(...)访问列表,这会让小耶稣哭泣。 for item in lista会更好,然后你只需要测试if item == "begin"等等。