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

如何从子文件夹运行Python文件并自动检测上级文件夹路径编辑数据

自动捕获Folder路径的解决方案

当然可以自动获取Folder的路径,不用每次改名都手动修改代码!我们可以利用Python的os.path模块,从你的脚本文件(Y.py)的位置出发,自动推导Folder的路径,完全不用硬编码路径字符串。

核心思路

你的文件结构是:

D:\Folder\
├─ Sub Folder\
│  └─ Y.py
└─ 1.html

Y.py在Sub Folder里,而Folder是Sub Folder的父目录。所以我们可以通过以下步骤自动获取Folder的路径:

  1. 获取Y.py的完整路径
  2. 得到Y.py所在的Sub Folder目录
  3. 向上一级找到Folder目录
  4. 用这个目录拼接出1.html的完整路径

修改后的代码

我帮你修正了路径问题,同时也优化了原代码里一些冗余的循环逻辑:

import os
import glob
import re

# 获取当前脚本(Y.py)的完整路径
script_path = os.path.realpath(__file__)
# 获取脚本所在的Sub Folder目录
sub_folder_dir = os.path.dirname(script_path)
# 获取父目录,也就是Folder的路径
folder_dir = os.path.dirname(sub_folder_dir)

html = ""
# 获取Folder目录下的所有html文件(如果你的目标是Sub Folder下的,就把folder_dir改成sub_folder_dir)
for file in sorted(glob.glob(os.path.join(folder_dir, '*.html'))):
    # 查找当前目录(Sub Folder)下的图片文件,取每种格式的第一个
    for img_ext in ('*.webp', '*.png', '*.jpg'):
        images = sorted(glob.glob(os.path.join(sub_folder_dir, img_ext)))
        if images:  # 确保有图片才处理,避免索引错误
            image = images[0]
            # 获取Folder的名称(也就是你之前的X变量)
            folder_name = os.path.basename(folder_dir)
            html += f'''<div class="card"><a href ="{os.path.relpath(file, folder_dir)}"><img class="card__image" src="{os.path.relpath(image, folder_dir)}" width="200px" alt="">
<div class="card__content"><p1>{folder_name}</p1></div>
<div class="card__info"></div>
</div></a>'''

# 自动生成1.html的路径,不用硬编码
out_file_name = os.path.join(folder_dir, "1.html")

# 读取并追加内容到1.html
with open(out_file_name, "r", encoding="utf-8") as f:
    existing_html = f.read()

if html not in existing_html:
    with open(out_file_name, "a", encoding="utf-8") as f:
        f.write(html + '\n')

关键修改点说明

  • 自动路径推导:用os.path.dirname()两次,从脚本路径一步步找到Folder目录,彻底告别硬编码的D:\\Folder\\
  • 安全路径拼接:始终用os.path.join()拼接路径,它会自动适配Windows的\分隔符,避免手动写路径出错
  • 冗余逻辑优化:去掉了原代码里重复的for X in {nmFolders[-2]}:循环,直接通过os.path.basename(folder_dir)获取Folder的名称
  • 相对路径适配:用os.path.relpath()生成相对路径,这样生成的HTML链接在Folder改名后依然有效
  • 异常防护:添加了if images:判断,确保有图片时才生成HTML片段,避免空列表索引错误

这样以后不管Folder改名叫什么,代码都会自动找到它的路径,再也不用手动修改outFileName啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 18:02:26