Как вы увеличиваете имя файла в Python - PullRequest
4 голосов
/ 21 февраля 2011

Я пытаюсь сохранить много данных, которые необходимо разделить, в разные файлы, например, data_1.dat data_2.dat data_3.dat data_4.dat

как мне реализовать это в python?

Ответы [ 4 ]

13 голосов
/ 21 февраля 2011
from itertools import count
filename = ("data_%03i.dat" % i for i in count(1))
next(filename)
# 'data_001.dat'
next(filename)
# 'data_002.dat'
next(filename)
# 'data_003.dat'
9 голосов
/ 21 февраля 2011
for i in range(10):
    filename = 'data_%d.dat'%(i,)
    print filename
0 голосов
/ 22 февраля 2011

Если вы идете по пути itertools, зачем смешивать его с выражением генератора?

>>> import itertools as it
>>> fngen= it.imap("file%d".__mod__, it.count(1))
>>> next(fngen)
'file1'
0 голосов
/ 22 февраля 2011

Аналогично решению Свена, но при обновлении до полного генератора:

from itertools import count
def gen_filenames(prefix, suffix, places=3):
    """Generate sequential filenames with the format <prefix><index><suffix>

       The index field is padded with leading zeroes to the specified number of places
    """
    pattern = "{}{{:0{}d}}{}".format(prefix, places, suffix)
    for i in count(1):
        yield pattern.format(i)

>>> g = gen_filenames("data_", ".dat")
>>> for x in range(3):
...     print(next(g))
... 
data_001.dat
data_002.dat
data_003.dat
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...