【问题标题】:Writing only part of a line to a file仅将行的一部分写入文件
【发布时间】:2010-08-05 18:17:23
【问题描述】:

我想清理我的输出,只将我需要的部分行写入新文件,而不是整行。这是相关的编码部分:

counter = 1

for line in completedataset:
    print counter
    counter +=1

    for t in matchedLines:
       if t in line[:line.find(',')]:
            smallerdataset.write(line)
            break

以下是数据示例:

NOVE1780418","---","JAX17054099","5","156323558" 等为行。

我只想写到第三个逗号之前的数字。我需要一些帮助来修改写行,只写到第三个逗号。这个文件非常大,我希望任何新代码都不会减慢程序速度,而是加快速度。谢谢鲍勃

【问题讨论】:

  • 不是您问题的答案,但看起来您可能喜欢使用 enumerate 函数:“for counter, line in enumerate(completedataset):”

标签: python lines writing


【解决方案1】:

应该就这么简单……

for line in infile:
    line = line.strip().split(',')
    outfile.write(','.join(line[:3]) + '\n')

【讨论】:

    【解决方案2】:
    for line in infile:
        line = line.strip().split(',',3)
        outfile.write(','.join(line[:-1]) + '\n')
    

    如果任何字段中可能出现“,”,则需要使用 csv 模块

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-06
      • 2019-07-02
      • 1970-01-01
      • 2019-09-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多