我从桌面上获得了一个文件,该文件的代码如下:
line 1 :#hi
line 2 :x=0
line 3 :#print x
line 4 :print "#"
line 5 :print ' # the x is" , x
line 6 :print "#"#
我想在程序中打印:
line 1 :x=0
line 2 :print "#"
line 3 :print ' # the x is" , x
line 4 :print "#"
,我用fopen在程序中运行,我分开了任何行,我想打印行,但是没有#...必须检查#是在“”还是“”中,以及何时我们必须用#打印行。
我打开了一个文件,将其分开,并在删除文件时检查#是否在行中,但是我找不到谁来检查#是在“”还是“”中,然后再打印所有的行。
def remove_comments(line,sep="#"):
for s in sep:
i = line.find(s)#find the posision of #
if i >= 0 :
line = line[:i]#the line is until the # - 1
return line.strip()
f=open("C:\Users\evogi\OneDrive\Desktop\ergasia3 pats\kodikaspy.txt","r")
for line in f :
print remove_comments(line)
结果是:
line 1 :
line 2 :x=0
line 3 :
line 4 :print "
line 5 :print '
line 6 :print "
答案 0 :(得分:0)
函数string.find()
返回子字符串首次出现的索引。因此,在您的情况下,您要查找返回0
的行(然后#
是第一个字符,即注释)。
所以您可以做类似的事情
def remove_comments(line,sep="#"):
for s in sep:
i = line.find(s)#find the posision of #
if i == 0 :
line = None
return line.strip()
f=open("C:\Users\evogi\OneDrive\Desktop\ergasia3 pats\kodikaspy.txt","r")
for line in f :
if remove_comments(line):
print remove_comments(line)