python插入变量字符串作为文件名

时间:2013-01-31 09:25:57

标签: python file python-2.7

我正在尝试创建一个文件名是唯一的文件名,每次运行我的脚本时,它只打算是每周或每月。所以我选择使用日期作为文件名。

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

非常感谢您的帮助

6 个答案:

答案 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')