问题描述
不确定我是从错误的角度看的,但是我有点初学者,而且有点不了解我。我试图在读取文件时忽略多行注释,因此我可以计算.sas文件(仅是文本文件)中的代码行数。我可以让我的代码找到像这样分成两行的注释
/* comment
comment*/
但是不是这样
/* comment
comment
comment */
我的代码是
for file_name in find_files(d):
with open(file_name,'r') as f:
def remove_comments(line):
is_in_comment = False
line = line.strip()
if line.startswith('/*'):
is_in_comment = True
return 0
elif line.endswith('*/'):
is_in_comment = False
return 0
return 0 if is_in_comment else 1
count = sum(remove_comments(line) for line in f if line.strip())
print(count)
不适用于多行注释。我设法通过使用正则表达式找到多行注释。这是代码,我能想到的唯一方法是使用re.sub()写回文件,然后进行计数。阅读时可以忽略正则表达式匹配吗?还是我要离开?
for file_name in find_files(d):
with open(file_name,'r') as f:
data = f.read()
multiline_comments = re.findall(pattern,data,re.DOTALL)
print(multiline_comments)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)