【发布时间】:2017-03-25 10:35:41
【问题描述】:
我正在尝试使用它们所在的子目录标签重命名子目录中的所有 .wav 文件。 Fox 示例
directory/sub-directory1/ 1_1.wav 到 directory/sub-directory1/ sdir1_1.wav 。我知道如何在 python 中重命名文件,但我无法遍历子目录然后添加标签。
虽然下面的代码可以对齐子目录和文件,但它不会循环遍历所有文件,因为如果文件多于目录,for dire in dirs: 将不起作用
import os
rootdir = r'C:\Users\test'
for subdir, dirs, files in os.walk(rootdir):
for dire in dirs:
for file in files:
filepath = subdir+os.sep+file
if filepath.endswith('.wav'):
print (dire+ file)
【问题讨论】:
-
os.walk不能那样工作。文件和目录上的循环不能嵌套。您能否更具体地说明您想要实现的目标? -
我有一个文件夹,里面有十几个子文件夹。在所有子文件夹中都有一些 .wav(文件)。这些 .wav 文件是随机命名的,并不系统。所以,我想做的是用子目录的名称重命名这些文件并增加例如:subdir1.wav、subdir2.wav 等等。基本上试图将子目录的引用添加到wave文件中。我希望我清楚吗?
-
为此我需要遍历子目录并重命名文件,然后转到另一个子目录并重命名这些文件等等。
-
您的意思是 sub-directory2/ 1.wav 到 sub-directory2/ sdir2_1.wav 吗?请重新阅读您的问题并对其进行编辑以更清晰。
-
@choman 我知道这是一个例子,但是当人们试图提供帮助时它会混淆。首先,您说要重命名文件名,然后在您的示例中,您还要重命名目录。你明白我的意思吗?
标签: python directory subdirectory