我想在磁盘上创建大约100个文件,每个文件的名称分别为1.txt
、2.txt
等。我尝试了open(str(i).txt,w+)
, open(i+'.txt', 'w+')
的不同组合,但似乎没有一个成功。
这些文件在Python创建之前并不存在于磁盘上。我该如何着手解决这些问题?
要创建一个新字符串,必须将两个字符串连接起来:
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('foon')
如果您需要更复杂的文件名,str.format
方法可以派上用场。上面的等价物是:'{0}.txt'.format(i)
。我也认为它更可读。
至于你的尝试,第一个不可能工作,因为.txt
部分会导致Python查找名为txt
的字符串方法,该方法不存在。另外,open()
的第二个参数应该是一个字符串,所以这也是一个错误。在第二次尝试中,这几乎是正确的,您只是忘记将i
转换为字符串。如上所述,您不能将数字与字符串连接在一起。
使用
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