導航:首頁 > 使用方法 > pythonshell使用方法

pythonshell使用方法

發布時間:2022-04-04 03:03:29

⑴ 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中運行python

python XXX.py (要先將python加入環境變數,如果沒有加,那麼使用全路徑來運行)

⑶ 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怎麼使用

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

Windows啟動Python互動式解釋器有兩種方式。第一種方式是進入Pyhton的安裝目錄,直接運行python.exe程序;第二種方式是進入Windows命令行窗口,在命令行窗口啟動python.exe。步驟如下:

1、第一步 找到python.exe文件:

注意事項:

1、在Windows命令行窗口啟動Python互動式解釋器,首先需要將Python安裝目錄的路徑,添加到Path系統環境變數

2、可以啟動Python交互解釋器進行互動式編程,也可以用Python自帶的集成開發工具編寫Python程序

⑹ 如何使用Python3.4與Linux shell交互

下面來看下在python3.4中,如何與Linux交互的。

在python裡面可以操作linux的命令有

1,os.system("cmd")

2,os.open("cmd")

3,spawn*

4,subprocess

在最新的python里,推薦使用subprocess來與shell通信,它會生成一個子進程來連接輸出,輸入,錯誤等shell下3中標準的輸入輸出流,並返回執行結果的狀態碼0和1,來判斷本次執行命令的成功與失敗。

下面來看一個小例子,首先,確保你的linux環境支持python3.4,如果不支持,你可以參考itjob網上散仙的上篇文章來安裝python3.4

首先,在linux,執行python命令找到最新的python3.4的路徑,然後再py文件里聲明頭部路徑,如果不知道python的具體安裝路徑,可以使用which python來查找路徑

[root@master ~]# py
pydoc pydoc3.4 python2 python3 python3.4-config python3.4m-config pyvenv
pydoc3 python python2.6 python3.4 python3.4m python3-config pyvenv-3.4
[root@master ~]# which python3.4
/usr/local/python3.4/bin/python3.4
[root@master ~]#
寫完腳本之後,先給腳本賦值許可權,再執行:

[root@master rtt]# chmod +x b.py
[root@master rtt]# cat b.py
#!/usr/local/python3.4/bin/python3.4

import subprocess as t

v=t.call("ls")

print ("返回值: ",v)

[root@master rtt]# b.py
a.py b.py b.txt
返回值: 0
[root@master rtt]#
看下面的例子,注意python的shell執行,返回的是一個字元串,如果我們想逐行解析,需要使用如下方法:

[root@master rtt]# cat b.txt
id name
1 a

2 戰三

3 b
[root@master rtt]# cat a.py
#!/usr/local/python3.4/bin/python3.4

import os
import subprocess as t

#var=t.getoutput("df -h")

#v=t.call("ls")

#var=t.getoutput("cat b.txt | grep a ")
var=t.getoutput("df -h | cat -n ")

for line in var.split("\n"):
print("這一行:" +line)

#print(var)

[root@master rtt]# a.py
這一行: 1 Filesystem Size Used Avail Use% Mounted on
這一行: 2 /dev/sda2 9.7G 2.9G 6.3G 32% /
這一行: 3 tmpfs 495M 0 495M 0% /dev/shm
這一行: 4 /dev/sda1 194M 28M 157M 15% /boot
這一行: 5 /dev/sda3 9.9G 948M 8.5G 10% /home
[root@master rtt]#
最後看下python的兩種,生成行號的方式:

tt="你好\n哈嘍"

for i,it in enumerate(tt.split("\n")):
print(i,it)

for line in range(len(tt.split("\n"))):
print(line," ",tt.split("\n")[line])
輸出結果如下:

0 你好
1 哈嘍
0 你好
1 哈嘍

⑺ python shell怎麼用

>>> import os 載入os模塊
>>> os.chdir("X:\XXX\YYY...") 添加你的文件夾路徑 注意用路徑兩側有引號
>>> execfile("XXX.py") 在這個路徑中打開你的py文件

⑻ 如何進入python shell

編寫的話,拿什麼編輯器編寫都可以。如果是編譯的話,python是不需要編譯的,直接運行即可。運行的話,你需要安裝一個python的解釋器,可以是官方python,actiePython或者其他版本的python。然後你可以選擇python自帶的IDLE編寫,也可以在命令行下輸入python進入交互shell進行編寫,當然也可以用支持python語言的IDE進行編寫。

⑼ 如何使用python執行遠程shell腳本

最近有個需求就是頁面上執行shell命令,第一想到的就是os.system,

代碼如下:
os.system('cat /proc/cpuinfo')

但是發現頁面上列印的命令執行結果 0或者1,當然不滿足需求了。

嘗試第二種方案 os.popen()

代碼如下:
output = os.popen('cat /proc/cpuinfo')
print output.read()

通過 os.popen() 返回的是 file read 的對象,對其進行讀取 read() 的操作可以看到執行的輸出。但是無法讀取程序執行的返回值)

嘗試第三種方案 commands.getstatusoutput() 一個方法就可以獲得到返回值和輸出,非常好用。

代碼如下:
(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')
print status, output

Python Document 中給的一個例子,

代碼如下:
>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

⑽ 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的解釋器里直接運行觀看結果。

(10)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文件。

閱讀全文

與pythonshell使用方法相關的資料

熱點內容
國際危機管理研究方法 瀏覽:678
蝴蝶蘭如何換盆養殖方法 瀏覽:669
肝內血管瘤都有哪些治療方法 瀏覽:461
副舟骨切除手術有哪些方法 瀏覽:310
內存卡和顯卡在哪裡設置方法 瀏覽:209
活動產品分析法常用的方法是什麼 瀏覽:658
劣質蜂王漿的鑒別方法 瀏覽:636
小兔音響連接方法 瀏覽:47
如何用科學方法大眼睛 瀏覽:822
仰卧起坐腹橫肌鍛煉方法圖解 瀏覽:388
科目一背誦方法和技巧 瀏覽:797
棉被芯怎麼除蟎蟲最有效方法 瀏覽:712
數字電橋漏感測量方法 瀏覽:176
菜鳥正確使用方法 瀏覽:995
干蒜片食用方法 瀏覽:439
怎麼折疊桌子的方法 瀏覽:226
clarigo對講機使用方法 瀏覽:326
男人口苦的治療方法 瀏覽:165
高二自控能力差的解決方法 瀏覽:745
資生堂化妝水使用方法 瀏覽:867