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

Python脚本跨文件夹提取tar文件问题求助

解决Python脚本提取跨文件夹tar文件的问题

当前你的myscript.py仅能处理同目录下匹配filesextract\d+规则的tar文件,以下是几种修改方案,让脚本支持提取其他文件夹中的目标文件:

原代码

import os
import re

# Setup main paths.
myfiles = os.listdir()

pattern = re.compile(r"filesextract\d+")

for files in myfiles:
    if(pattern.match(files) != None):
        command = "tar -xzvf " + files
        os.system(command)

方案1:指定固定目标文件夹

直接在脚本中定义要扫描的文件夹路径,替换target_folder为实际路径即可:

import os
import re

# 替换为你要扫描的目标文件夹路径(相对/绝对路径均可)
target_folder = "./path/to/your/folder"

pattern = re.compile(r"filesextract\d+")

# 遍历目标文件夹下的文件
for filename in os.listdir(target_folder):
    if pattern.match(filename):
        # 拼接完整文件路径,避免路径错误
        file_path = os.path.join(target_folder, filename)
        # 用单引号包裹路径,防止文件名含空格导致命令出错
        command = f"tar -xzvf '{file_path}'"
        os.system(command)

方案2:通过命令行参数指定文件夹(灵活度更高)

让脚本支持运行时传入目标文件夹路径,无需修改脚本即可切换扫描目录:

import os
import re
import sys

# 从命令行获取目标文件夹,未传入则默认当前目录
target_folder = sys.argv[1] if len(sys.argv) > 1 else os.getcwd()

pattern = re.compile(r"filesextract\d+")

for filename in os.listdir(target_folder):
    if pattern.match(filename):
        file_path = os.path.join(target_folder, filename)
        command = f"tar -xzvf '{file_path}'"
        os.system(command)

使用方式:

python myscript.py /path/to/your/target/folder

方案3:递归遍历所有子文件夹

如果需要提取目标根目录下所有子文件夹中的匹配文件,用os.walk实现递归扫描:

import os
import re

# 替换为要递归扫描的根文件夹路径
target_root = "./your/root/folder"

pattern = re.compile(r"filesextract\d+")

# 递归遍历所有子目录
for root, _, files in os.walk(target_root):
    for filename in files:
        if pattern.match(filename):
            file_path = os.path.join(root, filename)
            command = f"tar -xzvf '{file_path}'"
            os.system(command)

注意事项

  • 确保脚本对目标文件夹有读取权限,且系统中已安装tar命令
  • 若文件名包含特殊字符(如空格、引号),建议用shlex.quote()进行安全转义,示例:
    import shlex
    # ...
    command = f"tar -xzvf {shlex.quote(file_path)}"
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 22:17:31