我正在尝试创建一个文件名是唯一的文件名,每次运行我的脚本时,它只打算是每周或每月。所以我选择使用日期作为文件名。
f = open('%s.csv', 'wb') %name
是我收到此错误的地方。
Traceback (most recent call last):
File "C:\Users\User\workspace\new3\stjohnsinvoices\BabblevoiceInvoiceswpath.py", line 143, in <module>
f = open('%s.csv', 'ab') %name
TypeError: unsupported operand type(s) for %: 'file' and 'str'
如果我使用静态文件名,它是否有效,open函数是否有问题,这意味着你不能传递这样的字符串?
name是一个字符串,其值如下:
31/1/2013BVI
非常感谢您的帮助
答案 0 :(得分:32)
你需要在字符串后面加% name
:
f = open('%s.csv' % name, 'wb')
您的代码无效的原因是您尝试%
一个文件,这不是字符串格式,也是无效的。
答案 1 :(得分:5)
filename = "%s.csv" % name
f = open(filename , 'wb')
或f = open('%s.csv' % name, 'wb')
答案 2 :(得分:3)
使用新的字符串格式化方法......
f = open('{0}.csv'.format(name), 'wb')
答案 3 :(得分:2)
与peixe非常相似 如果作为参数添加的变量按照外观顺序
,则不必提及该数字f = open('{}.csv'.format(name), 'wb')
答案 4 :(得分:0)
Python 3中的f字符串更好!
f = open(f'{name}.csv', 'wb')
答案 5 :(得分:0)
f = open('{}。csv'.format(),'wb')