python - 复式表并导出为csv

标签 python csv

我在使用这张表时遇到了一些问题:

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])

问题在于行和列的输入(st)被直接获取并详细说明到 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/

相关文章:

php - 想将关联数组数据转换成CSV格式

java - Jsefa-使用动态列数反序列化 CSV

python - 如何使用增强来设置训练,同时确保未增强的实际图像也得到训练?

python - 邮件未发送给 CC 中的人员

python - 如何使用 Python 和 Pandas 从 salesforceordereddict 层次结构中提取数据

python - 如果行包含字符串追加行,则为 CSV

python - 如何使用Python 2.7以正确的形式将txt导出到csv?

mysql - 地理位置字符串sql中的变量

python-3.x - Rodeo UnicodeDecodeError : 'ascii' codec can't decode byte 0xef in position 0: ordinal not in range(128)

python - Django-为什么使用了ajax后就变成了一个空页面