我让我的脚本读取 csv 文件,我想先将其保存到数组中,然后切片第二个元素(即 csv 文件的第二行)并将数组写回 csv 文件。 csv 文件之前看起来像这样:
first name,username,age,status
test1,test1_username,28,2023-08-18 13:41:10+00:00
test2,test2_username,28,2023-08-18 13:41:10+00:00
test3,test3_username,28,2023-08-18 13:41:10+00:00
test4,test4_username,28,2023-08-18 13:41:10+00:00
test5,test5_username,28,2023-08-18 13:41:10+00:00
test6,test6_username,28,2023-08-18 13:41:10+00:00
test7,test7_username,28,2023-08-18 13:41:10+00:00
test8,test8_username,28,2023-08-18 13:41:10+00:00
运行我的脚本后,csv 是这样的:
first name,username,age,status
test2', 'test2_username', '28', '2023-08-18 13:41:10+00:00']]
test3', 'test3_username', '28', '2023-08-18 13:41:10+00:00']]
test4', 'test4_username', '28', '2023-08-18 13:41:10+00:00']]
test5', 'test5_username', '28', '2023-08-18 13:41:10+00:00']]
test6', 'test6_username', '28', '2023-08-18 13:41:10+00:00']]
test7', 'test7_username', '28', '2023-08-18 13:41:10+00:00']]
test8', 'test8_username', '28', '2023-08-18 13:41:10+00:00']]
但这就是我想要的输出(与之前相同,但没有第二行):
first name,username,age,status
test2,test2_username,28,2023-08-18 13:41:10+00:00
test3,test3_username,28,2023-08-18 13:41:10+00:00
test4,test4_username,28,2023-08-18 13:41:10+00:00
test5,test5_username,28,2023-08-18 13:41:10+00:00
test6,test6_username,28,2023-08-18 13:41:10+00:00
test7,test7_username,28,2023-08-18 13:41:10+00:00
test8,test8_username,28,2023-08-18 13:41:10+00:00
如果我多次运行它,就会突然出现更多像 ' 和 "这样的字符?为什么会发生这种情况?
我该如何解决这个问题?这是我的代码:
data = []
rows = []
with open('list.csv', 'r', encoding='UTF-8') as f:
data = csv.reader(f,delimiter=",",lineterminator="\n")
for row in data:
rows.append([row,])
rows = rows[2:]
with open('list.csv', 'w', encoding='UTF-8') as g:
writer = csv.writer(g, delimiter="\n")
writer2 = csv.writer(g, lineterminator="\n")
writer2.writerow(['first name', 'username', 'age', 'status'])
提前致谢!
最佳答案
您没有向输出文件写入任何内容(或者示例中缺少任何内容)。另外,使用 writer.writerows 写入数据:
import csv
rows = []
with open("in.csv", "r", encoding="UTF-8") as f:
data = csv.reader(f, delimiter=",", lineterminator="\n")
for row in data:
rows.append(row) # <-- append only `row` to the list, not `[row]`
rows = rows[2:]
with open("out.csv", "w", encoding="UTF-8") as g:
writer = csv.writer(g, lineterminator="\n")
writer.writerow(["first name", "username", "age", "status"])
writer.writerows(rows) # <-- use `writer.writerows` to write the data in one one step
out.csv
将包含:
first name,username,age,status
test2,test2_username,28,2023-08-18 13:41:10+00:00
test3,test3_username,28,2023-08-18 13:41:10+00:00
test4,test4_username,28,2023-08-18 13:41:10+00:00
test5,test5_username,28,2023-08-18 13:41:10+00:00
test6,test6_username,28,2023-08-18 13:41:10+00:00
test7,test7_username,28,2023-08-18 13:41:10+00:00
test8,test8_username,28,2023-08-18 13:41:10+00:00
关于Python csv.writer 添加不需要的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76964144/