是否有可能在Python中使用os.system()
發送相關命令列表?我的意思是,如果我想將當前目錄更改爲特定的目錄,然後列出內容,我該怎麼做? (我不想使用dir "path"
- 我想同時更改當前目錄,並列出目錄)如何發送命令列表使用'os.system('命令')'到python中的CMD
注意:這只是一個示例,我想知道如何發送多個命令! (一排一些相關的命令)
注:Python的3.2
是否有可能在Python中使用os.system()
發送相關命令列表?我的意思是,如果我想將當前目錄更改爲特定的目錄,然後列出內容,我該怎麼做? (我不想使用dir "path"
- 我想同時更改當前目錄,並列出目錄)如何發送命令列表使用'os.system('命令')'到python中的CMD
注意:這只是一個示例,我想知道如何發送多個命令! (一排一些相關的命令)
注:Python的3.2
使用os.system使用本地系統外殼。你可以這樣做,因爲@Rwaing在許多unixy shell上建議,但不是像windows這樣的其他地方。更好的選擇是subprocess.call和CWD(當前工作目錄)參數
import subprocess
subprocess.call('dir', shell=True, cwd='somepath')
正如其他人所提到的,如果你真的想要做的就是在文件列表中,existin Python API中做它相當好。
編輯:發送多發命令
一種方式來發送多個命令是將其泵入子shell的標準輸入。它的外殼相關的,但這裏有一個窗口例如:
import os
import subprocess as subp
p=subp.Popen('cmd.exe', shell=True, stdin=subp.PIPE)
p.stdin.write("""dir
cd "\\program files"
dir
""")
p.stdin.write('exit' + os.linesep)
p.wait()
del p
print 'done'
我認爲人們首先回避Popen子流程,但是一旦人們掌握了它,他們就消除了大部分工作壓力Python中的本地操作系統。快速,可移植的SQL工作就是一個例子。處理從嘗試的shell命令返回的錯誤是另一回事。 – Aphid 2014-09-05 19:11:12
親愛的tdelaney,你的代碼在Python 2.7中對我很好,但是我在python 3.4中收到錯誤(我已經把最後一行改爲'print('done')')。我遇到這個錯誤:>>> Traceback(最近一次調用最後一次): 文件「C:/Users/ghasemi.IT/Desktop/pypy.py」,第7行,在
看看os.listdir(路徑): https://docs.python.org/3/library/os.html#os.listdir
例如:
import os
entries = os.list.dir('/home/foo')
不知道是否適用於Windows,但在* nix你可以使用使用os.system(「CD /路徑/到/地方; DIR」) - 簡單的說命令之間的分號。 – 2014-09-05 16:23:22
在Windows中,您可以使用'&'來達到同樣的目的。此命令將列出您的主目錄的內容並暫停,直到您按Enter鍵。 'os.system(r'cd%USERPROFILE%&dir&pause> nul')' – Noumenon 2017-12-08 00:50:01