pythonshell使用
『壹』 如何打開python shell
Windows啟動Python互動式解釋器有兩種方式。第一種方式是進入Pyhton的安裝目錄,直接運行python.exe程序;第二種方式是進入Windows命令行窗口,在命令行窗口啟動python.exe。步驟如下:
1、第一步 找到python.exe文件:
注意事項:
1、在Windows命令行窗口啟動Python互動式解釋器,首先需要將Python安裝目錄的路徑,添加到Path系統環境變數
2、可以啟動Python交互解釋器進行互動式編程,也可以用Python自帶的集成開發工具編寫Python程序
『貳』 python怎麼調用shell腳本
直接使用python 後面跟python腳本的文件名就可以
例如:python tr.py就是在shell中執行pr.py這個python腳本,見下圖:
『叄』 python中怎麼運行shell腳本
python中怎麼運行shell腳本?
system()
其中最後一個0是這個命令的返回值,為0表示命令執行成功。使用system無法將執行的結果保存起來。
popen()
獲取命令執行的結果,但是沒有命令的執行狀態,這樣可以將獲取的結果保存起來放到pst中。
commands
可以很方便的取得命令的輸出(包括標准和錯誤輸出)和執行狀態位。
commands.getoutput('ls')這個方法只返回執行結果result不返回狀態。
在python中調用shell腳本
hello.sh
下面的512是返回的狀態碼,如果eixt 0時則返回的是0.
shell腳本使用python腳本的參數
寫一個hello.sh腳本,需要傳入兩個參數:
執行結果如下:
在python腳本中調用shell腳本,並傳入參數,注意參數前後要有空格
執行python腳本
相關推薦:《Python教程》以上就是小編分享的關於python中怎麼運行shell腳本的詳細內容希望對大家有所幫助,更多有關python教程請關注環球青藤其它相關文章!
『肆』 python中的shell提示符是什麼意思
命令行的shell直接輸入你要輸入的東西就行。
Shell 循環
啟動 shell 時,它會立刻展示命令提示符並等待輸入。在接收到命令並執行完畢(細節會在後面講到)後,shell 會再次回到等待循環,准備接收下一條命令。
在shell.py中,我們通過主函數調用shell_loop()函數,來啟動循環。代碼如下:
然後在shell_loop()函數中,使用status標志來表示循環是否應該繼續。在循環開始時,shell 將立即顯示命令提示符,並等待輸入。
(4)pythonshell使用擴展閱讀
用戶在 shell 中鍵入命令並按下回車時,輸入的命令是一條長長的字元串,其中包含了命令名以及參數。因此,我們必須將其切分(將字元串拆分成多個 token)。
字元串切分乍一看很簡單。我們可能會使用cmd.split()根據空格來分割輸入的命令。對於形如ls -a my_folder的命令是奏效的,因為cmd.split()會將其拆分為一個列表 —['ls', '-a', 'my_folder』],這樣我們使用起來就比較容易了。
但是,某些情況下,某些參數會帶有單引號或者雙引號,比如echo "Hello World」或者echo 'Hello World』。如果我們使用cmd.split(), 將會得到一個包含三個 token 的列表 —['echo', '"Hello', 'World」』],而不是包含兩個 token 的列表 —['echo', 'Hello World』]。
『伍』 python shell怎麼用
可以參看一下http://www.crifan.com/how_to_do_python_development_under_windows_environment/這個網址 裡面對python shell開發有比較詳細的介紹
利用Python的shell進行互動式開發
Python有個shell,提供一個Python運行環境。方便你互動式開發。
即寫一行代碼,就可以立刻被運行,然後方便查看到結果。
而Python的Shell,在Windows環境下,又分兩種:
Python (command line) 和IDLE (Python GUI)
下面分別介紹一下。
命令行版本的Python Shell – Python (command line)
Windows下,安裝好Python後,你可以在開始菜單中,找到對應的command line版本的Python Shell的:
其實,Win7中,有個更方便的方式,直接在搜索框中搜python,即可找到:
打開後,就是這個樣子的:
其中可以顯示出來對應的python版本信息和系統信息。
然後就是三個大於號>>>接下來,你就可以,像在之前所說的,普通文本中輸入python代碼一樣,在此一行行輸入代碼,然後就可以顯示對應的信息了:
其中可以看到,當你輸入對應的,第一行print時,此處命令行(command line)版本的Python Shell中,就可以,動態的,互動式地,顯示出對應的信息了。
正由於,此處可以,直接地,動態的,交互性式地,顯示出對應的信息,所以,才被叫做Python 的互動式的Shell,簡稱Python Shell。
對應的,把前面的代碼都輸入完畢,結果顯示為:
帶圖形界面的Python Shell – IDLE (Python GUI)
下面將要介紹的,同樣是Python的Shell,但是是相對於command line版本而言,是GUI,帶圖形界面的版本的。
對應的打開方式,和上面類似,可以直接搜python而找到:
對應的,可以看到,其名字寫的是IDLE。
打開後就是這樣的:
左上角的紅色圖標,好像是TK,是圖形界面庫的一種。
這個就是,很多Python教程中,所常用來作為Python的開發環境,教別人寫Python代碼的那個IDLE。
對應的,輸入上述的代碼,結果也是類似的:
『陸』 python shell怎麼使用
Python 中執行 Shell 命令有多種方法,stackoverflow 上有對這些方法進行比較的討論,Calling an external command in Python 指出使用subprocess模塊來實現更優。因此,本文說明如何使用subprocess模塊來實現 Shell 腳本的功能。
subprocess模塊提供多種方法來實現執行 linux 的命令,例如subprocess.call()方法,subprocess.check_call()方法,等。這些方法都是對Popen類的封裝,故本文著重講述Popen類的使用。
執行 Shell 命令
可以通過向Popen()傳遞需要執行的命令來創建一個Popen對象,這樣,便會創建一個子進程來執行命令。例如:
child = subprocess.Popen(["ping","-c","5","leehao.me"])
1
上面的代碼會創建一個子進程來執行ping -c 5 leehao.me命令,這個命令採用列表的形式傳遞給Popen()方法。如果我們想直接採用ping -c 5 leehao.me字元串形式,可以添加shell=True來實現:
child = subprocess.Popen("ping -c 5 leehao.me", shell=True)
1
官方文檔指出由於安全原因故不建議使用shell=True,詳細說明可以參考官方文檔的描述。
等待子進程執行
子進程執行命令後,主進程並不會等待子進程執行。為了讓主進程等待子進程執行結束,需要顯示調用Popen.wait()方法。例如:
child = subprocess.Popen(["ping","-c","5","leehao.me"])
child.wait()
print 'parent finish'
1
2
3
這樣,主進程會等待子進程執行ping命令完畢後,才會列印出parent finish的輸出。
獲取執行結果
為了獲取Popen()子進程的輸出,可以使用Popen.communicate()方法,例如:
def subprocess_cmd(command):
process = subprocess.Popen(command,stdout=subprocess.PIPE, shell=True)
proc_stdout = process.communicate()[0].strip()
print proc_stdout
subprocess_cmd('echo leehao.me; echo www.leehao.me')
1
2
3
4
5
6
輸出:
leehao.me
www.leehao.me
process.communicate()方法可以實現主進程與子進程的通信。主進程可以通過它向子進程發送數據,也可以讀取子進程的輸出的數據。上面的例子中,我們在創建Popen對象時指定stdout=subprocess.PIPE,這樣主進程便可以讀取子進程的輸出。
communicate()方法返回一個元組:(stdoutdata, stderrdata),process.communicate()[0]即獲取子進程的標准輸出。
需要指出的是,調用communicate()方法後,主進程也會等待子進程執行完畢。
上面的例子中,子進程向標准輸出列印兩個字元串,主進程接收到了這些輸出,並列印出來。
『柒』 python怎麼執行shell命令
工具/原料
Python環境
方法/步驟
os.system("The command you want"). 這個調用相當直接,且是同步進行的,程序需要阻塞並等待返回。返回值是依賴於系統的,直接返回系統的調用返回值,所以windows和linux是不一樣的
os.popen(command[,mode[,bufsize]]),
圖中是一個例子.
可以看出,popen方法通過p.read()獲取終端輸出,而且popen需要關閉close().當執行成功時,close()不返回任何值,失敗
時,close()返回系統返回值. 可見它獲取返回值的方式和os.system不同。
使用commands模塊,圖中是一組例子。根據你需要的不同,commands模塊有三個方法可供選擇。getstatusoutput, getoutput, getstatus。
但是,如上三個方法都不是Python推薦的方法,而且在Python3中其中兩個已經消失。Python文檔中目前全力推薦第四個方法,subprocess! subprocess使用起來同樣簡單:
直
接調用命令,返回值即是系統返回。shell=True表示命令最終在shell中運行。Python文檔中出於安全考慮,不建議使用
shell=True。建議使用Python庫來代替shell命令,或使用pipe的一些功能做一些轉義。官方的出發點是好的,不過真心麻煩了很多,
so.... 如果你更關注命令的終端輸出,可以如下圖這樣操作, 同樣很簡單.
『捌』 如何用python shell運行.py文件
在Python shell界面,輸入.py文件,單擊「run」來執行代碼,再回到shell界面,輸入代碼,就可以運行.py文件了。
『玖』 python shell是什麼東西
python shell是Python的命令行。
shell中最常用的是ls命令,python對應的寫法是:os.listdir(dirname),這個函數返回字元串列表,裡面是所有的文件名,不過不包含」.」和」..」。
如果要遍歷整個目錄的話就會比較復雜一點,在解釋器里試一下:
>>> os.listdir(」/」)
[』tmp』, 『misc』, 『opt』, 『root』, 『.autorelabel』, 』sbin』, 』srv』,『.autofsck』, 『mnt』, 『usr』, 『var』, 『etc』, 』selinux』, 『lib』, 『net』,『lost+found』, 』sys』, 『media』, 『dev』, 『proc』, 『boot』, 『home』, 『bin』]
就像這樣,接下去所有命令都可以在python的解釋器里直接運行觀看結果。
(9)pythonshell使用擴展閱讀:
python shell對應於shutil.(src,dest),這個函數有兩個參數,參數src是指源文件的名字,參數dest則是目標文件或者目標目錄的名字。
如果dest是一個目錄名,就會在那個目錄下創建一個相同名字的文件。與shutil.函數相類似的是shutil.2(src,dest),不過2還會復制最後存取時間和最後更新時間。
不過,shell的cp命令還可以復制目錄,python的shutil.卻不行,第一個參數只能是一個文件。
其實,python還有個shutil.tree(src,dst[,symlinks])。參數多了一個symlinks,它是一個布爾值,如果是True的話就創建符號鏈接。
移動或者重命名文件和目錄,shutil.move(src,dst),與mv命令類似,如果src和dst在同一個文件系統上,shutil.move只是簡單改一下名字,如果src和dst在不同的文件系統上,shutil.move會先把src復制到dst,然後刪除src文件。
『拾』 如何使用python執行遠程shell腳本
可以使用Python的Fabric包來完成這項任務。
既然是談到Shell腳本,系統應該是Linux/Unix的,遠程訪問,應該是ssh吧。
Fabric功能是將一個任務通過ssh在多台伺服器上執行,而每個任務可以是單條shell指令或是一段python腳本。
Fabric是將Python, Shell和SSH的功能很優雅地結合在了一起,同時自身又非常的輕量,適合大部分伺服器群的日常管理工作。