创建文件和文件夹循环

0 投票
2 回答
3470 浏览
提问于 2025-04-18 06:39

你好,我试着写一个循环来创建文件夹和文件。

我认为这个程序应该这样工作:

  1. 先创建第一个文件夹,并在里面放一个文件。
  2. 然后创建第二个文件夹,并在里面放一个文件。

然后继续这样做……

但是我程序的实际表现是:

  1. 先创建一个文件。
  2. 再创建文件夹。

这是我的程序:

import os,sys

di=("ab")
a=0
i=0
fi=open("az.txt","w")

def file():
    for i in range(0,10):
        fi.write(str(i))

def mk():
    for a in range(0,10):
        os.mkdir(di+str(a))
        file()

mk()

请帮帮我。

2 个回答

1

你好,我试着写一个循环来创建文件夹和文件。按照我的想法,程序应该这样工作:1)创建第一个文件夹,并在里面放一个文件;2)创建第二个文件夹,并在里面放一个文件,依此类推……但我的程序做的是:1)创建一个文件;2)创建文件夹。

确实,你的程序是这样做的,而不是你想要的那样。你的程序创建了文件夹,并在:

0123456789

里面写了十次内容到 az.txt。你的错误在于,你在任何循环之外打开了一个文件,然后在循环中往里面写内容。

我想,这才是你想要的效果:

import os,sys

di="ab"

def mk_file(di):
    for i in range(0,10):
        with open("{}/az_{}.txt".format(di,i), "w") as fi:
            fi.write(str(i))

def mk_dir():
    for a in range(0,10):
        dname = "{}_{}".format(di, str(a))
        os.mkdir(dname)
        mk_file(dname)

if __name__ == "__main__":
    mk_dir()
1

这个脚本会创建名为 "a"、"b"、"c" 的文件夹,并在每个文件夹里放入文件 1.txt、2.txt 到 5.txt。

你可以根据需要进行修改,试试看。

import os
for i in "abc":
    os.system ("mkdir "+i)
    for j in range (5):
            os.system ("touch "+str(i)+"/"+str(j)+".txt")

撰写回答