python 来自 txt 的列表理解的空列表输出

python empty list output for list comprehension from txt

正在尝试读取 txt 文件并过滤不相关的行。 有些行是随机字符串,有些行带有“#”标签字符。

base_txt = open(path, 'rU')
  txt = base_txt.readlines()
  txt = [x for x in base_txt if x.startswith('#')]
  print txt
  print len(txt)

输出是一个空列表。如果我在列表理解之前打印 txt,那么它会打印出文件中的所有字符串。

我在做语法错误吗?

你的代码没问题,你只是遍历了错误的变量。应该是

txt = [x for x in txt if x.startswith('#')]

而不是

txt = [x for x in base_txt if x.startswith('#')]