Python,如何用一级路径替换“anything”或“*”

2024-09-26 22:54:46 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在做一个搜索脚本来解析归档文件中的日志文件,但有一件事我在别的地方找不到资源。你知道吗

我需要用“anything”替换这个字符串的“id1”。简单地说,我想让脚本在路径中的特定位置获取任何内容。只有将logZip作为一个巨大的正则表达式才能实现这一点吗?你知道吗

logZip = ("c:/logs/" + str(id1) + "/" + str(id2) + "/" + str(id1) + "_log_" + str(dateID) + "_" + str(hourID) + "-00_" + str(id2) + ".zip")

根据要求,我添加了一个我想定义的示例路径和文件:

c:/logs/aaa1/sss2/aaa1_log_2013-01-14-13-00_sss2.zip
c:/logs/aaa2/sss2/aaa2_log_2013-01-14-13-00_sss2.zip
c:/logs/aaa3/sss2/aaa3_log_2013-01-14-13-00_sss2.zip

下一步将对sss2部分进行同样的操作。你知道吗


Tags: 文件路径脚本log地方ziplogsid2
1条回答
网友
1楼 · 发布于 2024-09-26 22:54:46
import glob
import os

id1 = '*'
logZip = glob.glob(os.path.join("c:/logs", id1, id2, '{}_log_{}_{}-00_{}.zip'.format(id1, dateID, hourID, id2)))

返回文件的完整路径列表,其中id1被通配符*替换。你知道吗

os.path.join使路径构造更清晰。你知道吗

如果logZip必须是单个文件,则可以使用glob.iglob,它返回一个迭代器:

id1 = '*'
mask = os.path.join("c:/logs", id1, id2, '{}_log_{}_{}-00_{}.zip'.format(id1, dateID, hourID, id2))
for logZip in glob.iglob(mask):
    # logZip is a single file

相关问题 更多 >

    热门问题