如何从bash脚本获取python脚本中带有目录路径的变量?

2024-09-30 22:14:19 发布

您现在位置:Python中文网/ 问答频道 /正文

我想知道如何在python脚本中获取当前工作目录作为参数,我的bash脚本如下所示:

#!/bin/bash
working_derictory=($PWD) #set working directory to variable
eval "python3.8 main.py" working_directory

在python脚本中,我尝试使用以下方法获取此变量:

import sys
print (sys.argv[1])

执行后,我得到working_directory文本,而不是目录路径 我还试图将它eval "python3.8 main.py" working_directory改为eval "python3.8 main.py" pwd,但得到了相同的结果。 请指出我做错了什么


Tags: topy目录脚本bash参数binmain
2条回答

你有几个选择

working_directory=$PWD
python3.8 main.py "$working_directory"

这将把变量的值作为命令行参数传递。在Python中,您将使用sys.argv[1]访问它

export working_directory=$PWD
python3.8 main.py

这将使用export添加一个环境变量。在Python中,您可以使用import osos.getenv('working_directory')来访问它

您还可以使用以下语法:

working_directory=$PWD python3.8 main.py

这将产生相同的(环境变量),而不会扰乱调用shell的环境

可以使用pathlib库来避免将其作为参数:

import pathlib

working_derictory = pathlib.Path().absolute()

相关问题 更多 >