我想在磁盘上创建大约100个文件,每个文件的名称为1.txt
,2.txt
,依此类推。我尝试了open(str(i).txt,w+)
,open(i+'.txt', 'w+')
的不同组合,但似乎都没有。
在Python创建之前,这些文件在磁盘上也不存在。如何解决这些问题?
答案 0 :(得分: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
转换为字符串。如上所述,您无法将数字与字符串连接。
答案 1 :(得分: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