将命令从python文件传递到shell脚本(Linux)



我编辑了这篇文章,以便提供更多关于我试图实现的目标的信息。基本上,我希望能够在一个目录中打开VSCode,我可以在我正在运行的python文件中输入它,尽管我创建了一个shell命令。所以我需要的是python文件询问我想要打开的文件夹的名称,将信息传递给终端,这样它就可以cd到该文件夹中,并自动打开vscode。我尝试了os.system((,正如我所读到的,这是我实现这个目标的方法之一。问题是,如果我使用标准的命令,如os.system("日期"(或os.system'("代码"(,它可以毫无问题地工作。如果我尝试使用os.system(cd/directory/(,则不会发生任何事情。按照建议,我也尝试了subprocess.call(["cd", "/home/simon/Desktop"]),但终端给了我错误:FileNotFoundError: [Errno 2] No such file or directory: 'cd'我将包括两个python文件:

import os, subprocess
PATH = "/home/simon/Linux_Storage/Projects"

def main():
print("n")
print("********************")
for folder in os.listdir(PATH):
print(folder)
print("********************")
project = input("Choose project: ")
print("n")
folders = os.listdir(PATH)
while project:
if project in folders:
break
else:
print("Project doesn't exist.")
project = input("Choose project: ")
os.system(f"cd /home/simon/Linux_Storage/Projects/{project}")
if __name__ == "__main__":
main()

和shell脚本(也许我应该在这里更改一些内容(:

function open() {
python3 .open.py
code .
}

请改用os.chdir((。运行该命令会生成具有该命令的子命令。

也在这里回答子进程更改目录

使用os.chdir()而不是os.system('cd /home/simon/Desktop')

#change directory
os.chdir('/home/simon/Desktop') 
#get current path
os.getcwd()
#execute script 
exec(open('path/to/yourfile.py').read())
#then change the path back to the current working directory 

最新更新