这是我的python代码:
import csv
with open('C://FolderName//File.csv', 'wb') as f:
writer = csv.writer(f)
for id in (1,10):
for X in (0,10):
writer.writerow(id,X,0,"Amazon"); // <- How do i write this using writer ?
csv文件中的所需输出,例如:对于id = 1和X = 0 - 10
1 0 0 Amazon
1 1 0 Amazon
1 2 0 Amazon
等等。
答案 0 :(得分:1)
你很接近,这是工作代码:
import csv
with open('C://FolderName//File.csv', 'wb') as f:
writer = csv.writer(f)
for id in range(1,10): # note use of range()
for X in range(0,10): # note use of range()
writer.writerow([id,X,0,"Amazon"]) # requires a sequence [...]
修正:
range(1,10)
,而不仅仅是元组(1,10) - 这只是用两个值1和10迭代,而不是你想要的值 help(writer.writerow)
告诉你它需要一个序列。因此,您将其args包含在[...]
顺便说一句,你不需要在你的路径名中加倍 - //。如果使用\\,则只需要将斜杠符号加倍,因为它需要在Python字符串中进行转义(除非它是原始字符串:r&#39; C:\ Folder \ File&#39;) 。但无论如何,Windows接受正斜杠,所以只使用正斜杠而不是反斜杠。
答案 1 :(得分:1)
首先正如所指出的那样,范围函数中存在错误,因为在分配元组时必须使用函数range(1,10)
而不是(1,10)
。
并写下你需要一个清单
也考虑这个
writer.writerow(["{} {} {} {}".format(id,X,0,"Amazon")]);
输出为
1 0 0 Amazon
1 1 0 Amazon
1 2 0 Amazon
如果你这样做
writer.writerow([id,X,0,"Amazon"])
输出
1,0,0,Amazon
1,1,0,Amazon
1,2,0,Amazon
发表评论编辑
每当您需要写入文件时,程序将请求操作系统移交写入权限。但是,如果该文件已在其他地方打开(如excel),则该文件将被操作系统锁定。这将导致程序等到锁打开(如果是阻塞写入),否则将抛出Permission Denied
错误。 (只有在使用专有软件时才会发生这种情况。)如果使用Notepad ++打开,则不会发生此错误