尝试使用今天的日期打开新文件时出现以下错误。
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
思想?
答案 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")
我希望我能提供帮助。