是否有现有的方法来读取任何python文件已经忽略了注释字符右侧的字符(例如,#
)?
例如,考虑文件
# this is a comment
0, 6, 7 # this is a comment
5, 6, 7 # this is a comment
7, 6 # this is a comment
我正在寻找可以被称为
的东西file.readcomlines()
#or
readcomlines(file)
并返回
['0, 6, 7 ', '5, 6, 7 ', '7, 6 ']
在python中有这样的事情,或者我将不得不手动编程这个功能?网络搜索毫无帮助。
答案 0 :(得分:0)
您可以使用内置功能str.partition(sep)
line = "0, 6, 7 # this is a comment"
left_part = line.partition("#")[0]
答案 1 :(得分:0)
您可以编写一个执行此操作的函数
NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"SELF.name contains[cd]%@ and SELF.version = %@" ,searchText, versionNo];
self.searchResults = [NSMutableArray arrayWithArray:[self.devices filteredArrayUsingPredicate:filterPredicate]];
[self.tableView reloadData];
例如
def readcomlines(path):
with open(path) as f:
return [line.split('#', 1)[0] for line in f if '#' in line]
然而,这只是解决这个问题的粗略方法,并不是特别强大。除了评论之外,角色>>> readcomlines('test.txt')
['', '0, 6, 7 ', '5, 6, 7 ', '7, 6 ']
可能会出现在许多其他地方。