我想从一个目录中创建一个文件列表。max,用户可以选择该目录,然后在3ds Max未运行时打开它。
问题是,我正在使用os.starfile()打开.max文件,甚至尝试使用subprocess,但没有一个工作,并出现以下消息:
- “未找到文件错误:[WinError 2]系统找不到指定的文件:“*
正如您所看到的,该程序识别目录的路径和其中的.max文件。
我已经用os.startfile打开一个.max文件一次,它做了它的工作,但不能弄清楚为什么它不工作,这一次。
import os
import psutil
import easygui
import time
from tkinter import filedialog
from tkinter import *
root = Tk()
msg = "Select a folder to render the .max files inside"
title = "3DS MAX AUTO RENDER"
choice = ["Select Folder"]
reply = easygui.buttonbox(msg, title, choices = choice)
if reply == "Select Folder":
root.directoryPath = filedialog.askdirectory(initialdir="/", title="Select a folder")
print(root.directoryPath)
directoryFiles = os.listdir(root.directoryPath)
print(directoryFiles)
isRunning = "3dsmax.exe" in (i.name() for i in psutil.process_iter())
if (isRunning == False):
for file in directoryFiles:
os.startfile(file)
1条答案
按热度按时间ivqmmu1c1#
os.listdir
返回的文件名是相对于给定目录的。当你运行脚本时,你不在那个目录中,它找不到文件,这就是为什么你会得到一个错误。使用
os.path.join
连接目录和文件名:directoryFiles
将包含绝对路径,因此不会出现错误。