使用python协助编写csv

使用python协助编写csv,python,python-3.x,Python,Python 3.x,我有下面的简单脚本来剥离IP。列表中的所有项目都打印得很好(z)-但当写入csv文件时,只写入最后一个条目,而不是z中的所有项目。任何帮助都会很好,谢谢 import csv, sys imported_csv = sys.argv[1] def remove_commas(): with open(imported_csv, 'r') as file: reader = csv.reader(file, delimiter=',') for i

我有下面的简单脚本来剥离IP。列表中的所有项目都打印得很好(z)-但当写入csv文件时,只写入最后一个条目,而不是z中的所有项目。任何帮助都会很好,谢谢

import csv, sys

imported_csv = sys.argv[1]


def remove_commas():
    with open(imported_csv, 'r') as file:
        reader = csv.reader(file, delimiter=',')

        for i in reader:

            x = i[0]
            y = x.split(",")
            z = y[0]
            print(z)

            csv_file = open('sample2.csv', 'w+')
            csv_file.write(z)
            csv_file.write('\n')
            csv_file.close()

remove_commas()

您需要在
a
a+
模式下打开
sample2.csv

  • a
    用于追加
  • w
    用于写入
  • +
    用于更新模式(读写)
所以。。。你每次都写得太多了。 下面应该只出现一行就可以解决您提到的问题

导入csv,系统
导入的_csv=sys.argv[1]
def删除逗号():
以打开(导入的_csv,'r')作为文件:
reader=csv.reader(文件,分隔符=',')
对于我的读者:
x=i[0]
y=x.split(“,”)
z=y[0]
打印(z)
csv_file=open('sample2.csv','a')
csv_文件。写入(z)
csv_文件。写入('\n')
csv_文件.close()
删除逗号()

您需要使用
“a”
权限打开文件:
“w+”
用于写入和读取,但打开时写入意味着截断<代码>“a”用于附加到文件(或在不存在时创建)

见:


啊!非常感谢。不需要“+”;只要
'a'
就可以了。我知道您不想太多地修改原始代码,但是每次迭代时打开和关闭文件看起来有点愚蠢。这是真的,但这不是代码复查。我们想回答他的问题。如果他开始遇到速度问题,或者有改进程序的愿望,他就有责任继续他的研究。但是,重复打开和关闭文件是非常愚蠢的。最好使用语句在原始的
中打开这两个文件。行
y=split(“,”
没有任何作用,因为
csv.reader
已经为您提供了单独的字段。
Character   Meaning
'r'     open for reading (default)
'w'     open for writing, truncating the file first
'x'     open for exclusive creation, failing if the file already exists
'a'     open for writing, appending to the end of the file if it exists
'b'     binary mode
't'     text mode (default)
'+'     open a disk file for updating (reading and writing)