【问题标题】:Python rewriting instead of appendingPython重写而不是追加
【发布时间】:2017-02-06 15:29:52
【问题描述】:

我有两个 csv 文件 result.csv 和 sample.csv。

结果.csv

M11251TH1230 
M11543TH4292 
M11435TDS144

样本.csv

M11435TDS144,STB#1,Router#1 
M11543TH4292,STB#2,Router#1 
M11509TD9937,STB#3,Router#1
M11543TH4258,STB#4,Router#1

我有一个 python 脚本,如果 result.csv 中的行与 sample.csv 中的行中的第一个单词匹配,它将比较两个文件,然后在 sample.csv 中的每一行附加 1 否则附加 0

它应该看起来像 M11435TDS144,STB#1,Router#1,1 和 M11543TH4258,STB#4,Router#1,0,因为在 result.csv 中找不到 M11543TH4258

脚本.py

import csv
with open('result.csv', 'rb') as f:
    reader = csv.reader(f)
    result_list = []
    for row in reader:
        result_list.extend(row)


with open('sample.csv', 'rb') as f:
    reader = csv.reader(f)
    sample_list = []
    for row in reader:
        if row[0] in result_list:
            sample_list.append(row + [1])
        else:
            sample_list.append(row + [0])

with open('sample.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerows(sample_list)

如果我运行脚本两次,则样本输出(sample.csv)

M11435TDS144,STB#1,Router#1,1,1 
M11543TH4292,STB#2,Router#1,1,1
M11509TD9937,STB#3,Router#1,0,0
M11543TH4258,STB#4,Router#1,0,0

每次我运行脚本时,都会在新列 sample.csv 中附加 1 和 0。有什么办法可以在每次运行脚本的时候,替换追加的列而不是增加列。

【问题讨论】:

  • 为什么要过日子?只需更改输出文件的名称,即 sample_result.csv。然后你的代码工作。您稍后要做的就是处理新文件而不是 sample.csv。

标签: python csv fileappender


【解决方案1】:

您写入sample.csv,然后将其用作输入文件,并带有附加列。这就是为什么你在这个文件中有越来越多的 1 和 0。 问候,Grzegorz

【讨论】:

    猜你喜欢
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2019-08-26
    • 1970-01-01
    • 2018-02-25
    • 2016-10-25
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多