python - 如何使用 out.write() 将整数值写入文件?

标签 python file-io

我正在生成一些数字(比方说,num)并使用 outf.write(num) 将这些数字写入输出文件。

但是解释器抛出一个错误:

    outf.write(num)  
TypeError: argument 1 must be string or read-only character buffer, not int.  

我该如何解决这个问题?

最佳答案

write()只需要一个单个字符串参数,所以你可以这样做:

outf.write(str(num))

outf.write('{}'.format(num))  # more "modern"
outf.write('%d' % num)        # deprecated mostly

另请注意,write 不会将换行符附加到您的输出,因此如果您需要它,您必须自己提供。

旁白:

使用字符串格式可以让您更好地控制输出,例如您可以这样写(两者是等价的):

num = 7
outf.write('{:03d}\n'.format(num))

num = 12
outf.write('%03d\n' % num)          

获取三个空格,整数值前导零后跟换行符:

007
012

format()将存在很长一段时间,因此值得学习/了解。

关于python - 如何使用 out.write() 将整数值写入文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11160939/

相关文章:

java - 使用java读取比较和修改大文件

c - 如何使用 pthread 一次性读取多个正在运行的进程?

java - 为什么 Scanner 的 hasNext() 方法最初会为非空文本文件返回 false?

python - 如何强制字典元素按顺序写入?

python - 在什么情况下 ensure_future 不能真正开始 future ?

python - pickle.load() 在 Windows 中引发 EOFError

java - 我在第一次运行时创建的属性文件在第二次运行时被清空

Python。方法 sort 的关键参数中可以使用什么 str.attribute ?设置.排序(键)

python - pandas 日期字段的 cut/qcut 等价于什么?

python - 在 Python 中使用 Sympy 评估符号微分