将基本变量列表写入文本文件

问题描述 投票:1回答:2

我想写一个文本文件,其中包含以下格式的一些行:

result: variable1 +/- error1
result: variable2 +/- error2

等等......到目前为止,我有:

f = open('file_{a}.txt'.format(a=some_name), 'w')
for i in range(len(variable)):
    f.write('result: ', variable[i], '+/-', error[i], '\n')

变量和错误是浮点数,some_name是一个字符串。

但我收到一个错误:

TypeError:期望字符串或其他字符缓冲区对象

我想我需要以不同方式格式化f.write线,但我无法弄清楚如何。该文件只需要由人读取,因此实际格式可以更改。

谢谢!

python list file file-writing
2个回答
4
投票

如果问题不是variable[i]error[i]的类型,请尝试这样:

f = open('file_{a}.txt'.format(a=some_name), 'w')
for i in range(len(variable)):
   f.write('result: {0} +/- {1}\n'.format(variable[i],error[i]))

0
投票

From the documentation:

f.write(string)

将string的内容写入文件,返回写入的字符数。

所以你不能传递由strings分隔的任何数量的commas作为arguments。这与print()的工作方式不同,除了任何数量的论点和formats它们为你...

这就是为什么你得到error

TypeError:期望字符串或其他字符缓冲区对象

如何解决:

修复它真的很容易,如果你确定variable[i]error[i]strings,你可以:

format他们与.format

f.write('result: {} +/- {}\n'.format(variable[i], error[i]))

或者将它们与+操作数连接起来:

f.write('result: ' + variable[i] + ' +/- ' + error[i] + '\n')

希望这可以帮助!

© www.soinside.com 2019 - 2024. All rights reserved.