【发布时间】:2019-07-04 02:01:37
【问题描述】:
我从桌面得到一个文件,它的代码如下:
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 "
【问题讨论】:
-
你把"和'搞混了
-
您需要一个适当的解析器才能正确执行此操作。看模块
ast。
标签: python