【问题标题】:python empty list output for list comprehension from txt来自txt的列表理解的python空列表输出
【发布时间】:2018-01-27 11:05:25
【问题描述】:

尝试读取 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,那么它会打印出文件中的所有字符串。

我在做什么语法错误?

【问题讨论】:

  • 您能否在您的问题中粘贴 5-10 行文本文件?
  • 你循环了错误的变量。应该是txt = [x for x in txt ...]
  • for x in base_txt -> for x in txt。第二次读取这些行时,文件指针位于末尾。

标签: python list-comprehension readlines startswith


【解决方案1】:

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

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

而不是

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多