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

时间:2016-06-14 19:01:30

标签: python

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

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

思想?

2 个答案:

答案 0 :(得分:0)

您使用import pandas as pd date = pd.date_range('1/1/2011', periods=5, freq='H').union(pd.date_range('5/1/2011', periods=5, freq='H')) df = pd.DataFrame({'cat' : ['A', 'A', 'A', 'B', 'B','A', 'A', 'A', 'B', 'B']}, index = date) print (df.index) DatetimeIndex(['2011-01-01 00:00:00', '2011-01-01 01:00:00', '2011-01-01 02:00:00', '2011-01-01 03:00:00', '2011-01-01 04:00:00', '2011-05-01 00:00:00', '2011-05-01 01:00:00', '2011-05-01 02:00:00', '2011-05-01 03:00:00', '2011-05-01 04:00:00'], dtype='datetime64[ns]', freq=None) df['index_shifted']= df.index.shift(-1, freq='H') print (df) cat index_shifted 2011-01-01 00:00:00 A 2010-12-31 23:00:00 2011-01-01 01:00:00 A 2011-01-01 00:00:00 2011-01-01 02:00:00 A 2011-01-01 01:00:00 2011-01-01 03:00:00 B 2011-01-01 02:00:00 2011-01-01 04:00:00 B 2011-01-01 03:00:00 2011-05-01 00:00:00 A 2011-04-30 23:00:00 2011-05-01 01:00:00 A 2011-05-01 00:00:00 2011-05-01 02:00:00 A 2011-05-01 01:00:00 2011-05-01 03:00:00 B 2011-05-01 02:00:00 2011-05-01 04:00:00 B 2011-05-01 03:00:00 代替,时格式不正确:

%

此外,您可以这样做:

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

答案 1 :(得分:0)

这条线     f = io.open(&#39;%s&#39;,今天,&#39; w&#39;) 应该有&#39;%s&#39;第一个参数第一个参数必须是文件名。 如果你这样写:

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

正常工作。还要考虑使用&#34;和&#34;如果出现异常情况,那么流将无论如何都会关闭,例如:

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

我希望我能提供帮助。