найти новый путь после использования os.system ('cd') - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь сгенерировать windows CMD используя os.После того, как я изменил каталог, используя os.system ('cd other_dir'), как мне найти новый каталог, используя os?

Ответы [ 3 ]

0 голосов
/ 29 сентября 2018

Вы можете сделать:

os.getcwd()

Это даст вам текущий рабочий каталог (cwd).

0 голосов
/ 29 сентября 2018

Тем не менее, другие участники уже предложили наилучшие возможные ответы, но я хотел бы добавить еще несколько советов при использовании модуля os.

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

Однако это более выполнимо и мудро длямы os модулируем внутренние атрибуты для использования, такие как переход в каталог, такой как os.chdir, а не os.system("cd /home/digit/openstack"), потому что это более интуитивно понятный и функциональный модуль os.

Итак, переход в каталог, который вы должны использовать os.chdir!

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

То же самое применяется для получения текущей информации о директории. Избегайте использования встроенной команды os при использовании модуля python os и используйте os.getcwd.

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

.текущее содержимое каталога использует os.listdir, а не os.system("ls -l")

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

ИЛИ, без указания текущего пути к рабочему каталогу, это более питоническое

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

ИЛИ, вы даже можете использоватьцикл for для вывода списка файлов и каталогов в указанный каталог, но более элегантный способ - выше единицы!

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

В случае, если вы ищете только подкаталоги сHin данного Dir:

>>> 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']
>>>
0 голосов
/ 29 сентября 2018

Как насчет стандартных команд Linux, так как вы на это:

os.system("pwd")
...