Как с помощью Python откомпилировать другой файл .py

я написал простой код который создает файл name + ".py" и записал в него маленький код, но я не знаю как можно было бы откомпелировать этот файл, я пытался сделать вот так: os.system("cd / & cd C:\Sherik & \'pyinstaller -F -w \' + name + \'.py\'") но не получилось, у меня python 3.8 работаю в Python Idle

вот часть кода:

file = open("C:\Sherik/" + name + ".py", "w", encoding="utf-8")
file.write("print ('Hello world')")
file.write("print ('Hello world')")
file.write("print ('Hello world')")
file.write("print ('Hello world')")   
file.close()
os.system("cd / & cd C:\Sherik & \'pyinstaller -F -w \' + name + \'.py\' & cd /")

так же пробовал в os.system("cd / & cd C:\Sherik & \'pyinstaller -F -w \' + name + \'.py\' & cd /") менять двойные скобочки на одинарные чтоб во всем коде были одинаковые скобочки но это не помогло


Ответы (1 шт):

Автор решения: n1tr0xs

Хорошим тоном является использовать полный путь к файлу, а не только его имя, да еще и без расширения.
Ключ -w для pyinstaller значит "скомпилировать" в режим "без консоли", поэтому результат работы программы 2.exe вы не увидете.
Вот полный код:

import os

path = 'C:\\'
name = '2.py'
com = f'cd /D {path} && pyinstaller -F -w {name}'

with open(path+name, "w", encoding="utf-8") as file:
    file.write("print('Hello world')\n")
    file.write("print('Hello world')\n")
    file.write("print('Hello world')\n")
    file.write("print('Hello world')\n")   

os.system(com)
→ Ссылка