gpt4 book ai didi

python - 运行子文件夹中的脚本

转载 作者:太空宇宙 更新时间:2023-11-03 19:55:56 24 4
gpt4 key购买 nike

我对 Python 还很陌生。我在各种在线资源和一些有才华的熟人的帮助下创建了一个脚本,但我完全碰壁了。我希望这里有一些有才华的人可以帮助解决这个问题。

我有一个工作脚本,但它需要在根文件夹上方(仅)第 1 层的每个文件夹上运行。它绝对不能低于。从根目录开始有超过 6000 个子文件夹,所有子文件夹都有自己的文件,需要在其上运行脚本。例如

ROOT
---------MODEL 1
------FILE.XMODEL_EXPORT
---------MODEL 2
------FILE.XMODEL_EXPORT
---------MODEL 3
------FILE.XMODEL_EXPORT

等等。

这是在这些文件上运行的代码的精简版本。

import glob
import os

command = "export2bin.exe /s *.xmodel_export"
os.system(command)

dirpath = os.path.split(os.getcwd())[1]

# Put all files with XMODEL_EXPORT extension into variable "myFiles"
myFiles = glob.glob('*.XMODEL_EXPORT')

for file in myFiles:
filename = file.rstrip('_LOD0.XMODEL_EXPORT') # strip the text off the end of the variable. This becomes the model name in APE.

# create the gdt filename with extension
filename_with_extension = filename + '.gdt'
# GDT CREATION STARTS HERE # ------------------------------------------------------------------------

gdt = '{\r'
gdt += '"'
gdt += filename
gdt += '" '
gdt += '( "xmodel.gdf" \r'
gdt += ' {\r'
gdt += ' "arabicUnsafe" "0"\r'
gdt += ' "autogenLod4" "0"\r'
gdt += ' "autogenLod4Percent" "13"\r'
gdt += ' "autogenLod5" "0"\r'
gdt += ' "autogenLod5Percent" "13"\r'
gdt += ' "filename" "'
gdt += dirpath
gdt += '\\\\'
gdt += 'xmodels'
gdt += '\\\\'
gdt += filename
gdt += '\\\\'
gdt += filename
gdt += '.XMODEL_BIN"\r'
gdt += ' }\r'
gdt += '}\r'

# GDT CREATION ENDS HERE # ------------------------------------------------------------------------

#save the GDT into the gdt file
with open(filename_with_extension, 'w') as gdtfile:
gdtfile.write(gdt)

我需要在这里实现的是通过右键单击 Shell 菜单来获取此内容。 (这是简单的部分)

我应该能够右键单击ROOT文件夹,它会遍历子文件夹,找到XMODEL_EXPORT文件,将其转换为XMODEL_BIN文件,并将GDT文件写入与刚刚处理的文件相同的目录中。

目前,我可以进入任何包含 XMODEL_EXPORT 文件的目录,并且代码可以正常工作。一旦我返回 1 或 2 个级别,它就不再起作用了。

我希望我的描述已经足够了。

提前致谢。

最佳答案

如果您不在同一文件夹中,代码不起作用的原因是默认情况下,glob.glob 仅检查您所在文件夹中的文件,而不是子文件夹。

要解决这个问题,请更改此行:

myFiles = glob.glob('*.XMODEL_EXPORT')

到这一行:

myFiles = glob.glob('**/*.XMODEL_EXPORT', recursive=True)

**/* 表示接受包含子文件夹的路径名,recursive=True 表示也检查子文件夹。

希望这有帮助。

编辑:

我从here获取信息

关于python - 运行子文件夹中的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59533920/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com