【问题标题】:Python Ignore lines in file that start withPython忽略文件中以
【发布时间】:2017-08-26 00:16:19
【问题描述】:

我是 python 新手。在我的 python 脚本中,我打开一个文件进行阅读,并想要处理某些行。我想忽略以“*”或“#”开头的行。这是我的代码:

line = DLF_P.readline()

while line:

if not line.startswith('*') or not line.startswith('#'):

    time = line.split()[0]
    print time
    time = datetime.strptime(time, FMT)

    if start < bdoyend:
        print time

line = DLF_P.readline()

我收到第一行(包含星号)与格式“HH:MM:SS”不匹配的错误。我认为我的代码会忽略这些类型的行。

ValueError: 时间数据 '**' 与格式 '%H:%M:%S' 不匹配

我做错了吗?

【问题讨论】:

  • 您输入的某行与 FMT 时间格式不匹配。检查哪些行不同,是否可以提供输入的示例

标签: python


【解决方案1】:

线

if not line.startswith('*') or not line.startswith('#'):

应该是

if not line.startswith('*') and not line.startswith('#'):

if not (line.startswith('*') or line.startswith('#')):

如果您想忽略以* 开头的两行和以# 开头的两行

【讨论】:

  • 好吧,我觉得自己很蠢,但我现在明白了。谢谢大家的帮助,不胜感激!!!
【解决方案2】:

由于您正在检查该行是否不是以 EITHER *# 开头,因此您需要这样做:

if not line.startswith('*') and not line.startswith('#')

【讨论】:

  • 好的,我明白了。我因为错过了这个逻辑而感到愚蠢,但我真的很感谢大家花时间提供帮助。
猜你喜欢
  • 1970-01-01
  • 2010-12-28
  • 2020-11-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2014-08-14
  • 2019-12-01
  • 1970-01-01
相关资源
最近更新 更多