我正在尝试保存大量需要分离到不同文件中的数据,如下所示:
data_1.dat
data_2.dat
data_3.dat
data_4.dat
我该如何在Python中实现这一点?
我该如何在Python中实现这一点?
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'
itertools
的生成器,真是太棒了,值得加上 +10 分。 - user395760for i in range(10):
filename = 'data_%d.dat'%(i,)
print filename
filename = 'data_%d.dat' % i
。 - dawgprint '%d'%(i,), s
。这也使得当你不想打印换行符时更加清晰明了。但是,% i
也可以起到同样的作用。 - yanprint '{:d} {}'.format(i,s)
,它相当于您示例中更冗长的版本... - dawg类似于Sven的解决方案,但升级为完整的生成器:
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
>>> import itertools as it
>>> fngen= it.imap("file%d".__mod__, it.count(1))
>>> next(fngen)
'file1'