一、使用os模組
in [1]: import os #匯入os模組
in [2]: os.system('ls')
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz
out[2]: 0
in [3]: a=os.system('ls') ##得到的是執行的命令的返回值,並不是執行結果
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz
in [4]: a #執行ls命令的返回值,成功,為0
out[4]: 0
in [5]: b=os.popen('ls').readlines() #將得到的結果直接賦值給b列表
in [6]: b #ls執行結果輸出到記憶體,再全部讀取賦值給b列表
out[6]:
['anaconda-ks.cfg\n',
'epel-release-7-5.noarch.rpm\n',
'ipython-4.1.2\n',
'ipython-4.1.2.tar.gz\n',
'pip-8.1.2\n',
'pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz\n']
>>>os模組中常見方法(linux命令)
os.remove():刪除檔案
os.rename():重新命名檔案
os.walk():生成目錄樹下的所有檔名
os.chdir():改變目錄
os.mkdir/makedirs:建立目錄/多層目錄
os.rmdir/removedirs:刪除目錄/多層目錄
os.listdir():列出指定目錄的檔案
os.getcwd():取得當前工作目錄
os.chmod():改變目錄許可權
os.path.basename():去掉目錄路徑,返回檔名
os.path.dirname():去掉檔名,返回目錄路徑
os.path.join():將分離的各部分組合成乙個路徑名
os.path.getsize():返回檔案大小
os.path.exists():是否存在
os.path.isabs():是否為絕對路徑
os.path.isdir():是否為目錄
os.path.isfile():是否為檔案
二、使用commands模組
in [7]: import commands #匯入commands模組
in [8]: c=commands.getoutput('ls') #ls命令執行結果,字串形式賦值給c變數
in [9]: c
out[9]: 'anaconda-ks.cfg\nepel-release-7-5.noarch.rpm\nipython-4.1.2\nipython-4.1.2.tar.gz\npip-8.1.2\npip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz'
in [10]: d=c.split('\n') #對變數c,指定分隔符\n分隔,列表形式賦值給d
in [11]: d
out[11]:
['anaconda-ks.cfg',
'epel-release-7-5.noarch.rpm',
'ipython-4.1.2',
'ipython-4.1.2.tar.gz',
'pip-8.1.2',
'pip-8.1.2.tar.gz#md5=87083c0b9867963b29f7aba3613e8f4a.gz']
三、read、readline、readlines區別1、read()全部取出,放到字串裡
2、readline()方法會將記憶體空間裡的內容一次性唯讀一行,放到乙個字串裡
3、readlines()方法會將記憶體空間裡的內容一次性全部取出來,放到乙個列表裡
四、python指令碼實踐
1、編寫乙個python指令碼實現輸出linux裡的所有的使用者的資訊,格式如下:
username is root uid is 0
username is xiaojin uid is 200
username is bin uid is 10
方式一:
#!/usr/bin/python
import commands
user_str=commands.getoutput('cat /etc/passwd')
user_list=user_str.splitlines() #列表形式分隔檔案內容(預設按行分隔)
for i in user_list:
u_info=i.split(':')
print "username is ",u_info[0],"uid is ",u_info[2]
方式二:
#!/usr/bin/python
import os
userlines=os.popen("cat /etc/passwd").readlines()
for i in userlines:
user_info=i.split(":")
print "username is",user_info[0],"\tuid is",user_info[2]
2、數值指令碼
1.提醒使用者輸入內容範圍是0-100
2.判斷使用者輸入的內容,如果不是數字給予提醒
3.輸出使用者輸入的內容
#!/usr/bin/python
u_grade=raw_input("please input your grade:")
if u_grade.isdigit(): #isdigit()將字串轉換成數的方法
if 0<=int(u_grade)<=100:
print "your grade is",u_grade
else:
print "please input the range of number 0-100"
else:
print "it's not a valid number,try again"
C C 中如何呼叫Python方法
c c 對python的呼叫層次可以分為三個層次,1 高層次的呼叫,2 純python呼叫,3 python方法的擴充套件 也就使向python輸出呼叫函式 這裡我主要討論 1 和 2 兩種方法.1 高層次的呼叫 這是最簡單的一種在c c 中呼叫python的方法.它直接的呼叫python提供的c呼...
Python爬蟲 xunfeng的Linux安裝
巡風支援多平台安裝,包括windows linux osx docker。我們今天只使用linux進行安裝。由於linux版本眾多,我們只講centos ubuntu和debian,以下在沒有特別說明的情況下,視為三個版本操作一樣 部署和除錯巡風要求root許可權,請使用者切換到root賬號進行操作...
Python如何呼叫JS檔案中的函式
python 呼叫js檔案中的函式方法如下 1 安裝pyexecjs第三方庫 2 導入庫 import execjs 3 呼叫js檔案中的方法 passwd execjs.compile open r web.js read decode abzzlu utf 8 call loginhandle ...