如何在Python中递增文件名

5 投票
4 回答
17145 浏览
提问于 2025-04-16 12:14

我想保存很多数据,这些数据需要分成不同的文件,比如这样:

data_1.dat
data_2.dat
data_3.dat
data_4.dat

我该怎么在Python里实现这个呢?

4 个回答

0

这个方法跟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
13

在编程中,有时候我们需要让程序在特定的条件下执行某些操作。比如说,当一个变量的值达到某个标准时,我们希望程序能自动做出反应。这种情况通常会用到“条件语句”。

条件语句就像是一个判断的开关,它会检查某个条件是否成立。如果成立,程序就会执行相应的代码;如果不成立,程序可能会执行其他的代码或者什么都不做。

举个简单的例子,想象一下你在做一个游戏,游戏里有一个角色。当角色的生命值降到0时,游戏就应该结束。这时候,我们就可以用条件语句来判断角色的生命值是否为0,如果是,就结束游戏。

总之,条件语句帮助我们控制程序的执行流程,让程序能够根据不同的情况做出不同的反应。

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

在编程中,有时候我们需要在代码里插入一些特殊的内容,比如变量的值或者计算的结果。为了做到这一点,我们可以使用一种叫做“字符串插值”的技术。

简单来说,字符串插值就是在一个字符串中直接放入变量的值。这样做可以让我们的代码更简洁,也更容易阅读。

比如,如果我们有一个变量叫做“名字”,里面存的是“张三”,我们想要输出“你好,张三”,就可以用字符串插值来实现。这样,我们就不需要手动拼接字符串,代码看起来会更清晰。

不同的编程语言有不同的方式来实现字符串插值,有的语言用花括号,有的用美元符号,具体的用法可以根据你使用的语言来查找。

总之,字符串插值是一种让代码更简洁的方法,特别适合在需要动态生成文本的时候使用。

for i in range(10):
    filename = 'data_%d.dat'%(i,)
    print filename

撰写回答