我在尝试使用程序中的变量更改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')
更改目录而不会出错。 我在哪里错了?
答案 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
希望这有帮助。