Создание нового файла, имя файла содержит переменную цикла, python
Я хочу запустить функцию над циклом, и я хочу хранить выходы в разных файлах, так что имя файла содержит переменную цикла. Вот пример
for i in xrange(10):
f = open("file_i.dat",'w')
f.write(str(func(i))
f.close()
Как это сделать в python?
Ответы
Ответ 1
Просто создайте имя файла с помощью +
и str
. Если вы хотите, вы также можете использовать старый стиль или форматирование нового стиля, чтобы сделать это, поэтому имя файла можно построить как:
"file_" + str(i) + ".dat"
"file_%s.dat" % i
"file_{}.dat".format(i)
Обратите внимание, что ваша текущая версия не указывает кодировку (вам следует) и неправильно закрывает файл в случаях ошибок (a with
делает это):
import io
for i in xrange(10):
with io.open("file_" + str(i) + ".dat", 'w', encoding='utf-8') as f:
f.write(str(func(i))
Ответ 2
Используйте f = open("file_{0}.dat".format(i),'w')
. На самом деле вы можете использовать что-то вроде f = open("file_{0:02d}.dat".format(i),'w')
, которое будет ноль-pad имя, чтобы сохранить его на две цифры (так что вы получите "file_01" вместо "file_1", что может быть полезно для сортировки позже). См. документацию.
Ответ 3
Объединить переменную i
в строку следующим образом:
f = open("file_"+str(i)+".dat","w")
ИЛИ
f = open("file_"+`i`+".dat","w") # (`i`) - These are backticks, not the quotes.
Смотрите здесь для других доступных технологий.
Ответ 4
Попробуйте следующее:
for i in xrange(10):
with open('file_{0}.dat'.format(i),'w') as f:
f.write(str(func(i)))