You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何检查指定目录中含任意扩展名的目标文件并获取完整路径

解决方案

原代码存在的问题

  • Python变量名不能包含减号,Folder-Name是非法命名,需改为Folder_Name
  • os.path模块不存在Folder-Name方法,原代码的文件检查逻辑完全错误
  • Python标准库中没有os.touch方法,创建空文件需要使用标准文件操作方式
  • 格式化字符串语法错误,正确写法是%s而非s%

最优实现代码

import os

# 修正变量名(Python不允许变量名包含减号)
File_Name = "Invoice_Dmart"
Folder_Name = r"c:\Documents\Scripts\Bills"

# 存储匹配到的文件完整路径
matched_file_paths = []

# 遍历目标目录下的所有条目
for entry in os.listdir(Folder_Name):
    entry_full_path = os.path.join(Folder_Name, entry)
    # 仅处理文件(排除子目录)
    if os.path.isfile(entry_full_path):
        # 提取文件名(不含扩展名)
        filename_without_ext = os.path.splitext(entry)[0]
        # 匹配目标文件名(如需不区分大小写,可添加.lower())
        if filename_without_ext == File_Name:
            matched_file_paths.append(entry_full_path)

# 处理结果
if matched_file_paths:
    print(f"找到匹配文件:{matched_file_paths}")
    # 若仅需第一个匹配文件的路径,直接取列表首个元素
    target_file_path = matched_file_paths[0]
else:
    print(f"未找到文件名(不含扩展名)为{File_Name}的文件")
    # 如需创建空文件,可执行以下代码(可选)
    # new_file_path = os.path.join(Folder_Name, f"{File_Name}.txt")
    # with open(new_file_path, 'w') as f:
    #     pass
    # print(f"已创建空文件:{new_file_path}")

代码说明

  • 用os.listdir遍历目标目录,os.path.isfile确保只处理文件而非子目录
  • os.path.splitext用于分离文件名与扩展名,提取无扩展名的部分进行匹配
  • 收集所有匹配的文件路径,若仅需首个匹配项,直接取列表第一个元素即可
  • 创建空文件采用Python标准的with open写法,避免资源泄漏

内容的提问来源于stack exchange,提问作者Manz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 16:31:04