Python 在到达新文件夹时进行操作

Python 在到达新文件夹时进行操作,python,os.walk,Python,Os.walk,我写这个脚本是为了为我的音乐收藏制作M3u文件,这样我就可以只打开一个文件,听一整张cd或w.e 我的脚本所做的是:为CWD中的每首歌曲制作一个M3u文件,并在一个M3u文件中放置参考底图文件夹 但我也想在CWD的每个子文件夹中创建一个M3u文件。 因此,在到达一个子文件夹时,它应该打开一个文件名为CWD的文件,并将该文件夹的所有名称放入该文件中,然后将该文件另存为:“CWD”.M3u 我想这就是你要找的os.walk实际上是递归的,因此只要在外部for循环的每次迭代中打开一个新的.m3u文件,

我写这个脚本是为了为我的音乐收藏制作M3u文件,这样我就可以只打开一个文件,听一整张cd或w.e

我的脚本所做的是:为CWD中的每首歌曲制作一个M3u文件,并在一个M3u文件中放置参考底图文件夹

但我也想在CWD的每个子文件夹中创建一个M3u文件。 因此,在到达一个子文件夹时,它应该打开一个文件名为CWD的文件,并将该文件夹的所有名称放入该文件中,然后将该文件另存为:“CWD”.M3u


我想这就是你要找的
os.walk
实际上是递归的,因此只要在外部
for
循环的每次迭代中打开一个新的
.m3u
文件,就可以使代码正常工作:

import os

exts = ('.mp3','.Mp3')

for root, dirs, files in os.walk(os.getcwd()):
    m3uname = os.path.basename(root)
    with open("{}.m3u".format(os.path.join(root, m3uname)), 'w') as outfile:
        for f in files:
            if f.endswith(exts):
                outfile.write('{}\n'.format(os.path.join(root, f)))

使用glob查找文件我今晚将对此进行测试,如果有效,将重新编译为答案:D(现在必须工作)
import os

exts = ('.mp3','.Mp3')

for root, dirs, files in os.walk(os.getcwd()):
    m3uname = os.path.basename(root)
    with open("{}.m3u".format(os.path.join(root, m3uname)), 'w') as outfile:
        for f in files:
            if f.endswith(exts):
                outfile.write('{}\n'.format(os.path.join(root, f)))