我有以下简单的脚本可以删除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()
答案 0 :(得分:0)
您需要以sample2.csv
或a
模式打开a+
。
a
用于追加 w
用于 write +
用于更新模式(读和写) 所以...您每次都覆盖文件。 下面应该可以解决您提到的问题,只出现一行。
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', 'a')
csv_file.write(z)
csv_file.write('\n')
csv_file.close()
remove_commas()
答案 1 :(得分:0)
您需要具有"a"
权限才能打开文件:"w+"
用于写和阅读,但是写意味着打开时会被截断。 "a"
用于附加到文件(或不存在时创建)。
请参见Python documentation on open:
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)