Os.步行到达新的褶皱时

2024-05-15 22:41:49 发布

您现在位置:Python中文网/ 问答频道 /正文

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

我的脚本所做的是:为CWD中的每首歌制作一个M3u文件,并在一个M3u文件中放置参考文件夹。你知道吗

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

import os,sys

folder_name=os.path.basename(os.getcwd())
folder=os.getcwd()
ext3=['.mp3','.Mp3']

file=open('%s.m3u'%(folder_name),'w')

for root, dirs, files in os.walk(folder):
    for x in files:
        if x[-4:] in ext3:
            print(root+'\\'+x)
            file.write('%s\%s\n'%(root,x))
file.close()        

if not x[-4:] in ext3:
    print("List is empty.")

Tags: 文件namein脚本文件夹forosroot
1条回答
网友
1楼 · 发布于 2024-05-15 22:41:49

我想这就是你要找的。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)))

相关问题 更多 >