python - 使用注释语法

时间:2015-05-12 12:42:01

标签: python file

是否有现有的方法来读取任何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中有这样的事情,或者我将不得不手动编程这个功能?网络搜索毫无帮助。

2 个答案:

答案 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 '] 可能会出现在许多其他地方。