我在使用这张表时遇到了一些问题:
import csv
with open('chill.csv','wb') as f:
writer = csv.writer(f)
for s in range(0,70,5):
for t in range(-25,10,5):
print 13.127 + 0.6215*t-11.362*s**0.16+0.396*t*s**0.16, '\t',
print
writer.writerow([13.127 + 0.6215*t-11.362*s**0.16+0.396*t*s**0.16])
问题在于行和列的输入(s
和 t
)被直接获取并详细说明到 print
语句中,但我需要在行和列中显示这些结果的派生值。此外,我尝试使用常用命令将表导出到 .csv 文件,但 Python 给我返回一个运行时错误:
ValueError:对已关闭文件进行 I/O 操作
。如何解决这两个问题?
顺便说一句,我正在使用 Python 2.7。
最佳答案
您的代码需要位于 with block 内部:
with open('chill.csv','wb') as f:
writer = csv.writer(f)
for s in range(0,70,5):
for t in range(-25,10,5):
print 13.127 + 0.6215*t-11.362*s**0.16+0.396*t*s**0.16, '\t',
print
writer.writerow([13.127 + 0.6215*t-11.362*s**0.16+0.396*t*s**0.16])
一旦离开 with
语句的主体,文件就会关闭,因此 writer.writerow
将失败并出现您看到的错误。
如果您希望将所有数据放在一行中并打印:
with open('chill.csv', 'wb') as f:
import csv
wr = csv.writer(f)
data = ([str(13.127 + 0.6215 * t - 11.362 * s ** 0.16 + 0.396 * t * s ** 0.16)
for t in range(-25, 10, 5)]
for s in range(0, 70, 5))
for row in data:
print("\t".join(row))
wr.writerow(row)
关于python - 复式表并导出为csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33988578/