在python中将变量传递给os.chdir

时间:2014-04-28 17:54:15

标签: python

我在尝试使用程序中的变量更改python中的目录时遇到了极其令人沮丧的经历。具体来说,假设我有:

index = '999'
os.environ['dir_name'] = 'Directory_Name_' + index
os.chdir('$dir_name')

给出OSError:[Errno 2]没有这样的文件或目录:' $ dir_name'

然而

 os.system('echo $dir_name')

返回' Directory_Name_999' (有效的目录名称) 和类似的

   os.chdir('Directory_Name_999')

更改目录而不会出错。 我在哪里错了?

2 个答案:

答案 0 :(得分:3)

你会混淆os.system可以做什么以及Python可以做什么。 os.system了解$dir_name是名为dir_name的变量。它检查其环境变量并找到它。

Python不知道"$dir_name"是什么,并假设您正在使用文字字符串。它尝试将目录更改为该目录,并因为没有文字目录"$dir_name"而失败。

相反,请执行:

index = '999'
os.environ['dir_name'] = "Directory_Name_"+index
os.chdir(os.environ['dir_name'])

您也可以os.system更改目录,因为它知道"$dir_name"的含义:

os.system('cd $dir_name')

但是为什么要用系统调用?让Python做到这一点。

答案 1 :(得分:-1)

对于寻找同样事物的其他人,你可以这样做:

1-24-2018

希望这有帮助。