繁体   English   中英

python io.open()整数必需错误

[英]python io.open() integer required error

尝试使用今天的日期打开新文件时出现以下错误。

Traceback (most recent call last):
File "C:\BenPi\stacking\pi3\red_RTS\iotest.py", line 6, in <module>
f = io.open('%s',today, 'w')
TypeError: an integer is required

这是我的代码

import datetime
import io
import os
today = datetime.date.today().strftime('%m_%d_%Y')
print (today)
f = io.open('%s',today, 'w')
f.write('first line \n')
f.write('second line \n')
f.close()

据我了解,这是当有人无意中使用os.open()而不是io.open()时出现的一个问题,这就是我指定io选项的原因。 应该注意的是,无论我是否导入os模块,都会出现相同的错误。

我正在使用python 3.2.5

有什么想法吗?

您的格式不正确,使用的是,而不是%

f = io.open('%s'%today, 'w')

此外,您可以执行以下操作:

f = io.open(today, 'w')

f = io.open('%s',today,'w')行应具有'%s'第一个参数,第一个参数必须是文件名。 如果您这样写:

f = io.open(today, 'w')

正常工作。 还可以考虑使用“ with”语句,这样在出现异常的情况下流将始终关闭,例如:

with io.open(today, 'w') as f:
    f.write("hello world")

希望对您有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM