1. 程式人生 > >python中os和sys模組的使用

python中os和sys模組的使用

os模組

以下操作都在ipython中實現:
import os #首先呼叫os模組
os. #按下tab鍵可以看到os模組的用法列表
1) os.listdir() #檢視指定目錄下所有目錄或檔名:

In [100]: os.listdir("/root/PycharmProjects/")
Out[100]: ['pycharm07']

2) os.path.split() #將目錄與檔名分開顯示:

In [95]: os.path.split("/home/kiosk/westos.txt")
Out[95]: ('/home/kiosk', 'westos.txt')

3) os.path.basename()

#檢視檔名:

In [94]: os.path.basename("/home/kiosk/westos.txt")
Out[94]: 'westos.txt'

4) os.path.abspath() #在當前路徑下檢視檔案路徑,如果檔案存在返回檔案路徑,如果檔案不存在,返回當前路徑與檔名,不會報錯:

In [3]: ls      #在當前路徑下只存在test.txt一個檔案
test.txt

In [4]: pwd     #檢視當前路徑
Out[4]: u'/root/PycharmProjects/pycharm07'   

In [5]: os.path.abspath("test.txt"
) #可返回檔案正確路徑 Out[5]: '/root/PycharmProjects/pycharm07/test.txt' In [6]: os.path.abspath("westos.txt") #輸入一個當前路徑下沒有的檔名,也會返回檔案路徑,並且不會報錯,在使用此命令的時候切記注意當前你所在的路徑: Out[6]: '/root/PycharmProjects/pycharm07/westos.txt'

5) os.system(“df -h”) #檢視掛載資訊

In [7]: os.system("df -h")
Filesystem      Size  Used Avail
Use% Mounted on /dev/sda3 115G 56G 60G 48% / devtmpfs 1.8G 0 1.8G 0% /dev tmpfs 1.8G 208K 1.8G 1% /dev/shm tmpfs 1.8G 8.8M 1.8G 1% /run tmpfs 1.8G 0 1.8G 0% /sys/fs/cgroup /dev/loop0 3.6G 3.6G 0 100% /var/www/html/rhel6.5 /dev/loop2 3.5G 3.5G 0 100% /var/www/html/rhel7.0 /dev/loop1 3.8G 3.8G 0 100% /var/www/html/rhel7.2 /dev/sda1 497M 146M 351M 30% /boot tmpfs 368M 32K 368M 1% /run/user/1000 tmpfs 368M 0 368M 0% /run/user/0

6) os.sep #檔案分隔符,返回“/”

In [8]: os.sep
Out[8]: '/'

7) os.linesep #換行符,返回“\n”

In [25]: os.linesep
Out[25]: '\n'

8) os.rename() #指定檔案重新命名

In [28]: ls
test.txt

In [29]: os.rename("test.txt","test")

In [30]: ls
test

9) os.remove() #刪除指定檔案

In [31]: ls
test  westos.txt

In [32]: os.remove("westos.txt")

In [33]: ls
test

10) os.mkdir() #建立目錄

In [33]: ls
test

In [34]: os.mkdir("hk")

In [35]: ls
hk/  test

sys模組

import sys #呼叫sys模組
1) sys.path # 獲取指定模組搜尋路徑的字串集合(可將寫好的模組路徑新增其中,就可以在程式中import呼叫時,正確找到)

In [37]: sys.path
Out[37]: 
['',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython']

2) sys.path.append() #將自定義模組的路徑新增到模組搜尋路徑的集合中,在程式中import呼叫此路徑下的模組時,可準確找到
下面為在/hoem/kiosk/路徑下自定義的模組hello.py內容:

def fun():
        print "welcome !"

新增:

In [45]: sys.path.append("/home/kiosk")  #將自定義模組的路徑新增進去

In [46]: sys.path   #檢視是否新增成功
Out[46]: 
['',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/home/kiosk']     #新增成功

In [51]: import hello  # 呼叫自定義模組

In [52]: hello.fun()   #執行成功
welcome !

3) sys.path.pop() #刪除sys.path中指定模組路徑,預設刪除最後一個,並返回被刪除的路徑資訊

In [55]: sys.path
Out[55]: 
['',
 '/usr/bin',
 '/usr/lib64/python27.zip',
 '/usr/lib64/python2.7',
 '/usr/lib64/python2.7/plat-linux2',
 '/usr/lib64/python2.7/lib-tk',
 '/usr/lib64/python2.7/lib-old',
 '/usr/lib64/python2.7/lib-dynload',
 '/usr/lib64/python2.7/site-packages',
 '/usr/lib64/python2.7/site-packages/gtk-2.0',
 '/usr/lib/python2.7/site-packages',
 '/usr/lib/python2.7/site-packages/IPython/extensions',
 '/root/.ipython',
 '/home/kiosk']

In [56]: sys.path.pop()
Out[56]: '/home/kiosk'

4) sys.getfilesystemencoding() #獲取檔案系統使用編碼方式

In [58]: sys.getfilesystemencoding()
Out[58]: 'UTF-8'

5) sys.getdefaultencoding() #獲取系統當前編碼,一般預設為ascii

In [59]: sys.getdefaultencoding()
Out[59]: 'ascii'

6) sys.platform #獲取當前系統平臺

In [61]: sys.platform
Out[61]: 'linux2'

7) sys.exec_prefix #返回平臺獨立的python檔案安裝的位置

In [2]: sys.exec_prefix
Out[2]: '/usr'

8) sys.executtable #返回Python解釋程式路徑

In [3]: sys.executable
Out[3]: '/usr/bin/python2'

9) sys.modules.keys() #返回所有已經匯入的模組列表

10) sys.builtin_module_names #返回python直譯器匯入的模組列表