[英]how to generalize/get base directory for Linux path for python script
(Linux)在Bash中,我可以使用variableName = cd $ BASEDIR。/ Desktop替换HOME / userName / Destop。 如何在Python中实现相同目标?
示例:需要替换home / name为通用名,以便我可以从多个主机运行它。 f =打开(“主目录/名称/目录/子目录/file.cfg”、“r”)
您可能会从os.path.expanduser
或os.path.expandvars
得到一些使用:
>>> import os
>>> os.path.expanduser('~/Desktop')
'/home/userName/Desktop'
或者,假设您的环境中定义了$BASEDIR
,
>>> import os
>>> os.path.expandvars('$BASEDIR/Desktop')
'/home/userName/Desktop'
使用第一个选项,也许您可以执行以下操作:
f = open(os.path.expanduser("~/directory/subdirectory/file.cfg"), "r")
您可以直接从os.environ
读取环境变量:
import os
basedir = os.environ.get('BASEDIR')
为了可靠地构建路径, os
模块提供了os.path.join
。 如果变量未定义,您还应该提供一个备用。 可能看起来像这样:
import os
my_path = os.path.expanduser(os.path.join(
os.environ.get('BASEDIR', '~'), # default to HOME
'Desktop'
)
请注意,环境变量可能不是最理想的解决方案。 查看参数,例如通过argparse
模块 。
尝试使用libray命令。
import commands
commands.getoutput("cd $BASEDIR./Desktop")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.