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
Большое спасибо за любую помощь
Ответы
Ответ 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')