用数字迭代文件名

0 投票
2 回答
723 浏览
提问于 2025-04-18 16:48

我想在电脑上创建大约100个文件,文件名分别是 1.txt2.txt,依此类推。我试过用不同的方式,比如 open(str(i).txt,w+)open(i+'.txt', 'w+'),但是都没有成功。

而且这些文件在用Python创建之前,电脑上是没有的。我该怎么解决这些问题呢?

2 个回答

2

使用

open(str(i) + ".txt", "w+")

来为每个 i 创建一个带有正确数字的文件。当然,你也可以使用 格式字符串

open("%d.txt" % i, "w+") # Old-style format strings, discouraged

或者

open("{0!s}.txt".format(i), "w+") # New-style format strings from Python 2.6 onwards
3

要创建一个新的字符串,你需要把两个字符串连接在一起:

for i in range(1, 101):
    with open(str(i) + '.txt', 'w') as fobj:
        # do what you want here with the file object
        fobj.write('foo\n')

如果你需要更复杂的文件名,str.format 方法会很有用。上面的例子可以写成:'{0}.txt'.format(i)。我觉得这样写更容易理解。

关于你的尝试,第一个方法是行不通的,因为 .txt 让 Python 去找一个叫 txt 的字符串 方法,但这个方法并不存在。而且,open() 的第二个参数应该是一个字符串,所以这也是个错误。在第二个尝试中,你几乎做对了,只是忘了把 i 转换成字符串。正如我之前说的,你不能把一个 数字 和一个 字符串 连接在一起。

撰写回答