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直譯器匯入的模組列表