我应该生成一个包含10列(从A到J)的csv文件,其中10000行包含1到1000之间的随机数。我能够获得所需的输出,但无法将此输出写入csv文件。请在下面找到我的代码和生成的错误消息。
import random
import csv
with open('table.csv', 'w') as file:
csv_write = csv.writer(file,delimiter="\t")
for i in range(ord('A'), ord('J')+1):
csv_write.writerow(chr(i), end="\t")
for j in range(1,11):
for k in range(1,1001):
csv_write.writerow(random.randint(1,10001), end="\t")
错误消息
Traceback (most recent call last):
File "C:\Users\rida_\Desktop\tables.py", line 8, in <module>
csv_write.writerow(chr(i), end="\t")
TypeError: writerow() takes no keyword arguments
答案 0 :(得分:1)
看起来像writenow只将字符串作为arg,没有别的。
https://docs.python.org/2/library/csv.html#csv.csvwriter.writerow
如果您希望最后\t
,请执行chr(i)+'\t'
。 Char只会转换一个字符。我想你正在寻找str(i)+'\t'
所以,
csv_write.writerow(str(i)+'\t')
并且
csv_write.writerow(str(random.randint(1,10001))+'\t'
当你在创建csv_write时指定了分隔符\t
时,我认为它会以\t
结束行,所以你不需要将它追加到最后。可能要尝试一下。
答案 1 :(得分:0)
根据此document,当您打开CSV文件进行写入时,您将提供delimiter
和quotechar
以及其他工作人员,因此在您的情况下,您无需通过{ {1}}到end="\t"
。这个方法只给出了一个列表来写入你的文件。祝你好运。