【发布时间】:2019-11-20 13:43:04
【问题描述】:
我对将每个子目录中的一个文件移动到其他新子目录有疑问。因此,例如,如果我有图像中显示的目录
然后,我只想选择每个子目录中的第一个文件,然后将其移动到另一个新的子目录,其名称与您从图像中看到的相同。这是我的预期结果
我已经尝试使用os.walk来选择每个子目录的第一个文件,但是我仍然不知道如何将它移动到另一个同名的子目录
path = './test/'
new_path = './x/'
n = 1
fext = ".png"
for dirpath, dirnames, filenames in os.walk(path):
for filename in [f for f in filenames if f.endswith(fext)][:n]:
print(filename) #this only print the file name in each sub dir
预期结果如上图所示
【问题讨论】:
-
结果中的新子目录在哪里?您似乎删除了第二个文件,而不是移动了第一个文件。
-
filenames[0]是目录中的第一个文件。 -
请参阅stackoverflow.com/questions/8858008/… 了解如何移动文件。
-
@Prune 不用shell,Python有
os.rename()和shutil.move()。 -
是的——好多了。我被自己的编码问题蒙蔽了双眼...... :-)
标签: python file directory path os.walk