用数字迭代文件名
我想在电脑上创建大约100个文件,文件名分别是 1.txt
、2.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
转换成字符串。正如我之前说的,你不能把一个 数字 和一个 字符串 连接在一起。