Подтвердить что ты не робот

Python, вставляющий переменную строку в качестве имени файла

Я пытаюсь создать файл файл уникальным именем файла, каждый раз, когда выполняется мой script, он предназначен только для еженедельного или ежемесячного. поэтому я решил использовать дату для имени файла.

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'

он работает, если я использую статическое имя файла, есть ли проблема с открытой функцией, значит, вы не можете передать такую ​​строку?

name - это строка и имеет такие значения, как:

31/1/2013BVI

Большое спасибо за любую помощь

4b9b3361

Ответ 1

Вам нужно поместить % name прямо после строки:

f = open('%s.csv' % name, 'wb')

Причина, по которой ваш код не работает, заключается в том, что вы пытаетесь выполнить % файл, который не является форматированием строки, а также недействителен.

Ответ 2

вы можете сделать что-то вроде

filename = "%s.csv" % name
f = open(filename , 'wb')

или f = open('%s.csv' % name, 'wb')

Ответ 3

И с помощью метода форматирования новой строки...

f = open('{0}.csv'.format(name), 'wb')

Ответ 4

Очень похоже на peixe.
Вам не нужно упоминать номер, если переменные, добавляемые в качестве параметров, выглядят в порядке появления

f = open('{}.csv'.format(name), 'wb')

Ответ 5

Еще лучше f-струны в Python 3!

f = open(f'{name}.csv', 'wb')