Python的標準庫sys、copy、os相關用法
阿新 • • 發佈:2019-01-05
1.sys庫相關函式
1.1 sys.argv
sys.argv是用來專門向python直譯器傳遞引數,所以稱為命令列引數
舉例說明:
import sys
print("the file name:",sys.argv[0])
print("the number of argument",len(sys.argv))
print("the argument is :",str(sys.argv))
這裡輸出結果為:
這裡我在ide中直接執行的該檔案,因此檔案的地址加上檔名或作為命令列引數。('the file name:', 'F:/Python work/1.py') ('the number of argument', 1) ('the argument is :', "['F:/Python work/1.py']")
在傳遞的過程中我們顯示了命令列引數的第一項,總的長度,以及字串的顯示
1.2 sys.exit
這個函式的目的是退出當前程式
import sys
for i in range (10):
if i==5:
sys.exit(0)
else:
print(i)
結果是顯示0,1,2,3,4
一般我們退出都會使用return函式,用sys.exit退出它可以發起systemexit異常
1.3 sys.path
sys.path 可以查詢模組所在目錄,以列表的形式顯示出來。如果用append的方法,能夠向這個列表增加新的模組目錄。
import sys
sys.path
如果你想使用的模組和你的腳步不在同一個資料夾,用下面這種方法
import sys
sys.path.append(’引用模組的地址')
2. os庫
os庫提供了訪問作業系統的服務的功能,下面或講解一下幾種典型的功能
2.1 操作檔案:重新命名、刪除檔案
在對檔案進行操作的時候,open這個內建函式可以開啟檔案,但是如果對檔案進行刪除、重新命名就要使用OS模組的方法。
import os
os.rename("1.py","2.py")
我在windows環境下,進行操作最後可以更改檔名字
2.2 操作目錄
2.2.1 os.listdir
os.listdir是顯示目錄中的內容
在這裡給出一個例項
例項:
這個例項是我前幾天遇到的一個小麻煩,我要從一個資料夾A裡進行搜尋,把所有檔案遍歷後將檔名字儲存到一個列表中,然後通過這個列表搜尋B資料夾裡的同名檔案,並將這些檔案提取出來
# -*- coding: utf-8 -*-
import os
import sys
import shutil
path='F:/A/JPEGImages'.decode('utf-8')
path1='F:/B/Annotations'.decode('utf-8')
path2='F:/C/annotation'.decode('utf-8')
list = os.listdir(path)
print(len(list))
print(list)
b=[]
for file in list:
a=file.split('.')[0]
b.append(a)
print(b)
for i in b:
ii=(i+'.xml')
shutil.copy(os.path.join(path1,ii), os.path.join(path2, ii))
這裡就是把A的檔名提取出來進行分割後儲存到列表,然後在B中按照此列表來搜尋,搜尋完後把檔案儲存至C,裡面用到了shutil語句,這是用來操作檔案複製的。