使用 os.walk() 将目录中的所有 .txt 文件移动到新文件夹?
Posted
技术标签:
【中文标题】使用 os.walk() 将目录中的所有 .txt 文件移动到新文件夹?【英文标题】:Moving all .txt files in a directory to a new folder with os.walk()? 【发布时间】:2020-01-26 19:36:52 【问题描述】:import os
import shutil
folder = 'c:\\Users\\myname\\documents'
for folderNames, subfolders, filenames in os.walk(folder):
for file in filenames:
if file.endswith('.txt'):
shutil.copy(?????, 'c:\\Users\\myname\\documents\\putfileshere\\' + file)
使用 os.listdir 对文件夹中的所有 .txt 文件执行此操作很简单,但我遇到了麻烦,因为在 oswalk 中我不知道如何获取以 .txt 结尾的文件的完整文件路径。 txt 因为它可以在许多子文件夹中
不确定我是否使用了正确的目录术语,但为了更清楚起见,我想将所有 .txt 文件移动到新文件夹,即使它是文档文件夹深处的 1、2、3 个子文件夹。
【问题讨论】:
【参考方案1】:要获得完整路径,您必须结合根和文件名部分。根部分指向枚举文件名的完整路径。
for root, _, filenames in os.walk(folder):
for filename in filenames:
if filename.endswith('.txt'):
file_path = os.path.join(root, filename)
shutil.copy(file_path, ...)
【讨论】:
谢谢,我对什么是 root\foldername 有一个误解,我将不得不重新审视我的理解 是的,我第一次使用时觉得它不是很直观【参考方案2】:你也可以使用glob.glob(pathname)
【讨论】:
以上是关于使用 os.walk() 将目录中的所有 .txt 文件移动到新文件夹?的主要内容,如果未能解决你的问题,请参考以下文章
Python - Os.walk循环遍历不同驱动器中的目录列表
在Python中使用os.walk为对应的文件夹和子文件夹创建一个txt文件
如何在 Python 中使用 os.walk 获取特定文件或目录列表?