如何在根目录和目标目录之间并置一组文本文件

时间:2019-03-29 14:01:23

标签: python-3.x os.walk pathlib

我正在编写一个python脚本,其目的是遍历目录结构,其中每个目录都有一个文本文件,并且

  1. 从根目录下的任意“ n”个目录中选择目录中的文件
  2. 连接目标目录中文件中的所有文本,直到单个文件中的根目录
  3. 使用say -f script.txt -o greetings.aiff转换文本文件并将其导出为aiff格式
  4. 使用lame -m m greetings.aiff greetings.mp3将其转换为更可用的格式

这是为什么?听起来可能有些奇怪,但它创建了一个定制的学习音频,它遍历知识结构(目录结构)并每天覆盖其中的不同部分。

我认为我会在第3步和第4步很好。但是,我很难识别根目录下的随机文件n目录。

根据其他答案,我可以使用pathlibPath中的os.walk

这两个实现在这里:

pathlib

它获取文件列表并显示一个随机文件。我认为目前就足够了。但是,如何获取根文件和随机文件之间的所有文件?

def get_random_files2(ext, top=os.getcwd()):
    file_list = list(Path(top).glob("**/*.{}".format(str(ext))))
    if not len(file_list):
        return "No files matched that extension: {}".format(str(ext))
    rand = random.randint(0, len(file_list) - 1)
    #print(len(file_list))

    return file_list[rand]

extension = "txt"
print(get_random_files2(extension))

os.walk

这是半熟的,因为我仍在学习如何使用它,并且我的python生锈了。

import os

for root, dirs, files in os.walk(".", topdown=True):
    for name in files:
        print(os.path.join(root, name))
    for name in dirs:
        print(os.path.join(root, name))

0 个答案:

没有答案