У меня есть скрипт Python, над которым я работал, и я не могу решить эту проблему при вызове командного файла из отдельного каталога, вот мой скрипт для справки
def makeFolder(folderName=""):
try:
os.mkdir(path + "/" + folderName)
except OSError:
print("Error creating folder.")
def p(string=""):
os.system('cls')
print(string)
path = os.getcwd().replace("/python", "")
name = input("What would you like the client to be called? ") + " 1.8.8"
mcp = "http://www.modcoderpack.com/files/mcp918.zip"
optifine = "http://download2265.mediafire.com/bdd5w08f1zcg/e878f5djmyuvnxm/Optifine.zip"
updatedDecompileFile = "https://pastebin.com/raw/Mwt03EEs"
def setup():
makeFolder(name)
p("Created folder '%s'." % name)
zipPath = name + "/src.zip"
p("Downloading MCP 1.8.8 from %s" % mcp)
urllib.request.urlretrieve(mcp, zipPath)
p("Finished Downloading MCP 1.8.8")
p("Unzipping MCP 1.8.8")
with zipfile.ZipFile(zipPath, 'r') as zip_ref:
zip_ref.extractall(path + "/" + name)
os.remove(zipPath)
p("Unzipped MCP 1.8.8")
mcpPath = path + "/" + name + "/"
for file_name in listdir(mcpPath):
if file_name.endswith(('.bat', '.sh')):
os.remove(mcpPath + file_name)
os.remove(mcpPath + "CHANGELOG")
os.remove(mcpPath + "LICENSE.txt")
urllib.request.urlretrieve(updatedDecompileFile, name + "/decompile.bat")
... this is where I would need to run the batch file ...
setup()
В настоящее время у меня естьПользователь заходит в указанный каталог и запускает внутри него пакетный файл из-за проблемы, когда при запуске пакетного файла появляется сообщение о том, что он не может найти путь. Вот командный файл для справки:
@echo off
runtime\bin\python\python_mcp runtime\decompile.py
pause
Файл Python, который вызывает этот пакетный скрипт, требует, чтобы путь был syspath\project\Client
.
Однако при программном вызове пакетного файла из сценария Pythonрасположенный в каталоге syspath\project
выдает ошибку. Однако при ручном выполнении файла, расположенного в syspath\project\Client
, он работает отлично, как и предполагалось.
Я полагал, что ответ будет лежать в параметре пути, переданном из показанного выше пакетного файла в скрипт Python, который он выполняет. Так как я был новичком в Python, моя единственная работа, о которой я мог подумать, это «подделать» путь, чтобы он сообщал файлу Python, что он был выполнен в syspath\project\Client
, а не syspath\project
.
Если вам нужна дополнительная информация, пожалуйста, дайте мне знать, не делая мой пост слишком длинным, я попытался объяснить свой вопрос.