startswith()在我的字符串前面找不到'//'

时间:2013-04-16 21:33:01

标签: python python-2.7

我有一个非常简单的python脚本,它读入一个文件,并逐行解析。

似乎没有在我的行开头识别'//'。如果我改变它以在我的行的开头寻找'#',它也找不到那些行。我只是误解了这个吗?

line = fIn.readline()

while line:
    print "line is", line
    line = line.strip()
    if line.startswith('//'):
        print "winner"
    line = fIn.readline()

我正在阅读的文件如下:

// Feedback
"Feedback" = "Feedback";

// New strings
"File URL not reachable." = "File URL not reachable.";

当打印输出时,调试行看起来合适:

line is // Feedback

line is "Feedback" = "Feedback";

line is 

line is // New strings

line is "File URL not reachable." = "File URL not reachable.";

line is 

3 个答案:

答案 0 :(得分:1)

更好的版本:

with open("abc") as f:
    for line in f:
        line=line.strip()
        if line and line.startswith("//"):
            print "line is",line
            print "winner"
            print next(f)
   ....:             

<强>输出:

line is // Feedback
winner
"Feedback" = "Feedback";

line is // New strings
winner
"File URL not reachable." = "File URL not reachable.";

答案 1 :(得分:0)

您只是阅读文本文件的一行。除了你在最后一行有错误的缩进,它似乎工作。确保在每次迭代时执行line = fIn.readline()后运行程序(向左移动一个块)。

这是我修复一行后获得的,这是所需的输出吗?

line is // Feedback

winner
line is "Feedback" = "Feedback";

line is  

line is // New strings

winner
line is "File URL not reachable." = "File URL not reachable.";

编辑:这对你有用吗?

for line in open("yourfile.txt").readlines():
    print "line is", line
    line = line.strip()
    if line.startswith('//'):
        print "winner"

答案 2 :(得分:0)

试试这个

for line in fIn:
    print "line is", line
    line = line.strip()
    if line[0:2]=='//':
        print "winner"
        line = fIn.readline()