Python不循环文件中的行

时间:2016-05-31 18:23:41

标签: python

无论出于什么原因,当我运行这个程序时几乎没有任何事情发生。它似乎非常直接和简单,它让我感到疯狂,它不起作用。

fin = open("input.txt", 'r')


print("asd;lkfja;sdlkfj")

read = True

for line in fin.readlines():
    print(line)
    begComment = line.find("/*")
    print(begComment)
    endComment = line.find("*/")
    if(begComment != -1):
        print("found one")
        if(endComment != -1):
            line = line[:begComment] + line[endComment:]



    print(line)

fin.close()

这似乎是一个非常愚蠢的问题。我只是不明白为什么它不起作用。

这是我的input.txt文件的内容,它与python文件在同一目录中

asdfjas;dlkfja;sdlkfj /*;alksdjf;alksdjf*/
 \n
 a;sldkfj;akdsjf
 asd;lfkja;sdlkjf
 asd;flkja;dklfja;lksdjf;alkjsdf;lkajdsf;lkaj
 as;dlfkj;asdlkf;akj

所有输出的是初始打印语句(asd; lkfja; sdlkfj)

2 个答案:

答案 0 :(得分:0)

尝试在open()语句中放置文件的完整(绝对)路径:

fin = open("/full/working/path/to/the/file/input.txt","r") #(try C:/full/working/[...] for windows builds)

#continue code...

使用open()时,python假定当前的工作目录。根据您使用的IDE以及执行文件的方式,这可能会产生意外结果。如果您正在使用notepad ++(来自注释,它看起来像你),python可能会在notepad ++的程序目录中打开文件,而不是在.py文件所在的目录中。绝对路径通过强制python查看非常特定的目录来解决这个问题。我没有安装notepad ++,但我之前在其他低功耗IDE上遇到过这个问题。

答案 1 :(得分:-3)

你在每次迭代时调用readlines,将其从for循环中删除。

lines = file.readlines()
for line in lines: