導航:首頁 > 程序命令 > python調用clinux命令

python調用clinux命令

發布時間:2023-06-02 10:09:41

⑴ 如何使用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,如果不支持,你可以參考散仙的上篇文章來安裝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 哈嘍

⑵ 怎麼在linux里運行一個py文件

先將終端所在路徑切換到python腳本文件的目錄下,

然後給腳本文件運行許可權,一般755就OK。

chmod 755 ./*.py

然後執行。

在linux命令行模式答中早中運行python,進入python互動式環境,寫程序後直接輸出結果。清雀

⑶ python和linux到底有關系

python和linux兩者間沒什麼關系,python是一門程序設計語言,linux是一個操作系統,向上支持應用軟體的運行,向下控制硬體,是軟體和硬體的過渡層。Python語言可以在Linux系統下學習和開發。

比如,如果是想用Python開發網站(現今流行的、成熟的Python Web框架)就需要使用到Linux平台;如果想使用Python爬蟲爬取數據,在Linux系統上也要更方便一些;還有就是想學習網路安全滲透測試,在Linux上編寫Python自動化測試腳本也很有必要。

(3)python調用clinux命令擴展閱讀:

可以通過python對linux進行操作,利用python操縱linux的命令為:

1、import os

#返回操作系統類型,值為posix,是linux操作系統,值為nt,是window操作系統

2、print os.name

#返回操作系統的詳細信息

3、print os.uname()

#系統的環境變數

4、print os.environ

print os.environ.get('PATH')

#判斷是否為絕對路徑(不會判斷文件或者目錄是否存在)

5、print os.path.isabs('/tmp/westos')

print os.path.isabs('hello')

#生成絕對路徑

⑷ 如何用python獲取linux系統的網卡信息

1.下載源代碼
2. 安裝,過程如下。

$ tar –jxvf Python-2.5.2.tar.bz2
$ cd Python-2.5.2
$ ./configure
$ make
$ make install

3. 測試。
在命令行下輸入python,出現python解釋器即表示已經正確安裝。
在suse10或rhel5(es5)下系統默認已經裝了python但版本是2.4.x;本次安裝後在shell中輸入#python

會發現顯示結果:
# python

Python 2.4.3 (#1, Dec 11 2006, 11:38:52)

[GCC 4.1.1 20061130 (Red Hat 4.1.1-43)] on linux2

Type 「help」, 「right」, 「credits」 or 「license」 for more information.

>>>

⑸ 我想用python寫個web界面簡單執行遠程linux命令 web界面要能自由填寫執行shell命令和腳本

首先python基礎你得會:
最簡單套路:web用flask,linux交互用subprocessor模塊
說白了就三點:python基礎、flask框架、subprocessor模塊

⑹ python怎麼實現web頁面敲入linux命令,傳入到另一個伺服器執行

這個不難,我說下原理,具體你自己實現。瀏覽器向web伺服器提交要執行的linux命令,服務端調用os.system等系統交互的方法,去執行所提交的命令,然後獲取執行後標准輸出、標准錯誤,將這些標准輸出、錯誤以response返回給瀏覽器。

⑺ python 執行linux命令後怎樣輸入密碼

一、使用工具:python、linux
二、方法步驟:有三種方法
1、 最簡單的方法,但是不安全
raw_input() :
pwd = raw_input('password: ')
print pwd
# password: aaa
# aaa
2、很安全,但是看不到輸入的位數,會讓人覺得有點不習慣,不知道的還以為沒有在輸入
getpass.getpass() :
import getpass
pwd = getpass.getpass('password: ')
print pwd
# password:
# aaaa
3、
msvcrt.getch() :
代碼如下:
import msvcrt, sys
def pwd_input():
chars = []
while True:
newChar = msvcrt.getch()
if newChar in '\r\n':
# 如果是換行,則輸入結束
print ''
break
elif newChar == '\b':
# 如果是退格,則刪除末尾一位
if chars:
del chars[-1]
sys.stdout.write('\b')
# 刪除一個星號,但是不知道為什麼不能執行...
else:
chars.append(newChar)
sys.stdout.write('*')
# 顯示為星號
print ''.join(chars)
pwd = pwd_input()
print pwd
# ******
# aaaaaa
三、注意事項:第三種方法解決了第二種方法不能顯示輸入位數的問題,但是如果按退格鍵(backspace)的話,雖然實際的是退格了,
但控制台卻沒有顯示相應的退格,比如,當前輸入是:abcd,顯示為:****,然後現在打一個退格鍵,實際
輸入為:abc,而顯示仍為:****。不知道為什麼 sys.stdout.write('\b') 這行沒有執行,估計是和使用msvcrt.getch()有關系。感興趣的朋友可以進一步研究一下。

⑻ python執行linux命令,怎樣自動輸入 yes/no

這種交互猜棚銷式命令可以使用pexpect模塊實現

>>>importpexpect
>>>child=和散pexpect.spawn('ssh127.0.0.1')
>>>child.expect('continue')
0
>>>child.sendline('yes')
4
>>>printchild.before
Theauthenticityofhost'127.0.0.1(127.0.0.1)'can'tbeestablished.
ECDSAkeyfingerprintisd1:61:c6:ae:ab:bc:22:3e:52:57:49:d5:05:6f:4b:90.
Are穗游yousureyouwantto

傳送門

http://990487026.blog.51cto.com/10133282/1715953

閱讀全文

與python調用clinux命令相關的資料

熱點內容
zip內存壓縮 瀏覽:311
阿里雲99元伺服器不可以退款 瀏覽:337
linux下安裝vnc 瀏覽:656
微信圖片加密編輯可見 瀏覽:704
江恩操盤術pdf 瀏覽:929
本機構所屬的伺服器是什麼意思 瀏覽:783
c編譯器有哪些段 瀏覽:862
qq原創表情在哪個文件夾 瀏覽:624
點點賺app現在怎麼不能用了 瀏覽:363
網紅阿里程序員事件 瀏覽:203
演算法設計心得體會 瀏覽:117
java修改ip 瀏覽:150
php不需要編譯嗎 瀏覽:135
特斯拉新車如何用app控制 瀏覽:186
文檔拖到文件夾就不見了 瀏覽:815
標致308壓縮比是多少 瀏覽:751
伺服器和備用伺服器地址 瀏覽:928
程序員加班跳槽 瀏覽:708
青年員工在工作中如何化解壓力 瀏覽:604
包子解壓神器怎麼玩才爽 瀏覽:735