python - 写入创建的不同文件

时间:2016-08-10 11:12:02

标签: python loops text

我想创建100个文件夹,并在每个文件夹中创建一个txt文件。我想在每个文本文件中写出不同的东西,因为某些条件。我可以创建文件夹,并在每个文件夹中创建文件。但是,通过使用打开(' ...')作为f:,我无法在每个文本文件中编写不同的内容。

以下是创建文件夹和文件的代码。它运作得很好。

def createAndFillFolders():

    for i in range(100):
        dir_name = (('/home/pi/Project/folder_%s') % (i))
        if os.path.exists(dir_name): # if the folder already exists
            shutil.rmtree(dir_name) # then overwrite
        os.makedirs(dir_name)
        open(os.path.join(dir_name, "file_%s" % (i + 1)), "w")

但是如果现在我想在每个文件中写出不同的东西,我找不到合适的方法。 我尝试使用os.path.join打开但是当我使用"打开(...)时它不起作用:

    with open(os.path.join(dire_name,'/file_%s.txt' % (i + 1, i + 1), "w") as #("file_%i.txt" % (i + 1)):
        ("file_%i.txt" % (i + 1)).write("%i" %(i + 1))

我知道代码的最后一部分是完全错误的,但它可以帮助理解我想要的东西。

因此每个folder_i都有一个file_i.txt文件,其中包含" i"写在里面。

感谢您的帮助!!

1 个答案:

答案 0 :(得分:2)

def writeToFiles():

    for i in range(100):
        dir_name = (('/home/pi/Project/folder_%s') % (i))
        f = open(os.path.join(dir_name, "file_%s" % (i + 1)), "w")
        f.write(str(i))
        f.close()

这是一个这样做的我会更喜欢你在创建你的文件和文件夹时这样做,你会做这样的事情:

def createAndFillFolders():

    for i in range(100):
        dir_name = (('/home/pi/Project/folder_%s') % (i))
        if os.path.exists(dir_name): # if the folder already exists
            shutil.rmtree(dir_name) # then overwrite
        os.makedirs(dir_name)
        f = open(os.path.join(dir_name, "file_%s" % (i + 1)), "w")
        f.write(str(i))
        f.close()

如果您遇到任何错误,或者卡在某处,请告诉我。