python - 如何扫描目录中的文件夹并在末尾获取最高编号的文件夹-python
问题描述
我对python真的很陌生,我正在尝试自动化程序。我有一些文件夹,我想在最后输入编号最大的文件夹。在图片中我有一些文件夹。我想把数字最高的文件夹放在最后。例如在这张图片中,folder_4 这是我到目前为止所尝试的。我不知道如何继续,或者我的代码是否有效。
import os
import shutil
import glob
path="N:\QA\Automation\Projects\AT_Projects"
projectlist = os.listdir(path)
for project in projectlist:
projectdir = path + "\\" + project
file_path=[]
print(projectlist)
if os.path.isdir(projectdir):
folders=os.listdir(projectdir)
for folder in folders:
file_path=folder
if os.folderdir.isdir(folder):
print('true')
else:
print("done")
我想扫描文件夹,最后输入 folder_4 以从中获取一些东西。
我该怎么做这个扫描?
解决方案
假设所有内容都在同一个文件夹中,您可以执行以下操作:
from pathlib import Path
p = Path.cwd() # Alternatively, use Path(<your folder path>) to point to another folder
sorted_folders = list(sorted(p.glob("*[0-9]/"), key=lambda x: int(x.name.split("_")[-1])))
这适用于包含您要排序的文件夹的文件夹。
打破这个:
- 使用 pathlib.Path 您可以获得当前工作目录的 Path 对象
- 将 Path.glob 与模式“*[0-9]/”一起使用,它为您提供了一个生成器,用于生成目录(所有文件夹)中以数字结尾的所有内容
- 使用 sorted,键是“在 _ 上拆分名称并取该名称的最后一部分”,例如“folder_1”-> [“folder”,“1”]。我们应用 int 以便这里的最后一个元素被视为数字,而不是字符串
- 创建一个列表,以便您按顺序排列文件夹
如果您想要编号最大的文件夹,您可以选择列表中的最后一个成员
sorted_folders[-1]
推荐阅读
- python - 如何在 Pandas 修改有序字典的键?
- python - 尽管单元测试正常运行,但 Authtoken 迁移不起作用
- python - 从 yahoo Finance 抓取 python 中的数据
- mysql - 一次从表中选择和“存档”表
- dialogflow-es - 返回 Dialogflow 上问卷调查机器人的最后一个活动上下文
- python - Intellji IDEA 上的 Conda 环境
- javascript - 是否可以在有限的时间内阻止 js 代码执行
- python - 如何在 Debian 9 上为 Python3 安装 Selenium Webdriver?
- oauth-2.0 - 链接多种语言的 Google Actions 和 Auth0 帐户
- python - 整数或字符串的序列化器字段