使用os.system('cd')后找到新路径

时间:2018-09-29 10:52:42

标签: python operating-system python-os

我正在尝试使用os生成Windows CMD。 使用os.system('cd other_dir')更改目录后,如何使用os查找新目录?

3 个答案:

答案 0 :(得分:1)

既然您正在使用标准Linux命令,该怎么办?

os.system("pwd")

答案 1 :(得分:0)

您可以这样做:

os.getcwd()

这将为您提供当前的工作目录(cwd)。

答案 2 :(得分:0)

但是,其他人已经提出了最好的答案,但是我想在使用os模块时添加更多提示。.

>>> import os
>>> os.system("pwd")
/home/digit       # <-- this is listing the present working Dir
0

然而,os模块的内部属性对于我们来说更可行,更明智,因为它更直观且具有os模块功能,因此可以像遍历到os.chdir这样的目录而不是使用os.system("cd /home/digit/openstack")来使用

因此,遍历目录应使用os.chdir

>>> os.chdir("openstack")
>>> os.system("pwd")
/home/dgit/openstack
0

使用相同的方法获取当前目录信息时,请避免在使用python os模块时使用native os命令,而应使用os.getcwd

>>> os.getcwd()
'/home/digit/openstack'

要列出当前目录的内容,请使用os.listdir而不是os.system("ls -l")

>>> os.listdir()
['vm_list.html']

或者,不指定当前工作目录路径,这更像Python

>>> os.listdir(os.getcwd())
['vm_list.html']

或者,您甚至可以使用for循环将文件和目录列出到指定的目录,但更优雅的方法是在目录之上!

>>> for filename in os.listdir("/home/digit/openstack"):
...     print(filename)
...
vm_list.html

如果您只想获取给定目录中的子目录:

>>> os.chdir("/home/digit/plura/Test")

>>> next(os.walk('.'))[1]
['Python_Dump', 'File_Write_Method', 'Python_FTP', 'Python_Panda', 'Python-3.6.3', 'Python_Parsers', 'Python_Mail', 'Python_aritsTest', 'Network_DeOps', 'Python_ldap', 'Python_Ftp', 'Regular_Expr', 'Python_Primer', 'Python_excep', 'dnspython', '.git', 'argpass', 'BASH', 'NWK-old', 'tmp', 'Backup']
>>>