print ('test.csv')
# This is where all data will be place into CSV format
import csv
with open('test.csv', 'wb') as fp:
#csv = csv.DictWriter(fp, ['f1', 'f2'])
test_file = 'test.csv'
csvfile = 'test.csv'
csvfile = csv.DictReader(open (test_file, 'rb'), delimiter= ',', quotechar='"')
fieldnames = ['Somefield']
test_file = open ('test.csv','wb')
csvwriter = csv.DictWriter(test_file, delimiter=',', fieldnames=fieldnames)
csvwriter.writerow(dict ((fp, fp) for fp in fieldnames))
for row in test_file:
csvwriter.writerow(row)
test_file.close()
for row in row: csv.writerow (row)
当我运行此代码时,我得到IOError:文件未打开,无法读取" for test_file"这里有什么问题?在我看来,就像我在上面打开它一样。
答案 0 :(得分:0)
您已在不同的文件句柄上打开了两次相同的文件。这不行。使用不同的文件名进行输出,或者在写入之前读取并关闭并重新打开。
答案 1 :(得分:0)
在文件开头,您正在以写入模式打开test.csv
。这将消灭那里写的任何东西。 另外,您是以二进制格式打开它,但如果是 csv
,则需要以文本格式打开它。
其他问题:
with open('test.csv', 'wb') as fp:
fp
未在程序中的任何其他位置使用。除了擦干文件外,这里没用。
csvfile = 'test.csv'
csvfile = csv.DictReader(open (test_file, 'rb'), delimiter= ',', quotechar='"')
第一行什么都不做,因为它只会被覆盖。再次,您打开空文件。
test_file = open ('test.csv','wb')
csvwriter = csv.DictWriter(test_file, delimiter=',', fieldnames=fieldnames)
在这里,你再次打开同一个文件。
for row in row:
csv.writerow (row)
你想在这做什么?你以一种非常混乱的方式覆盖你的迭代器。也许你想做for row in test_file
。
另外,writerow是DictWriter
的方法,而不是csv的方法。这将引发异常。