1. 程式人生 > >Python的標準庫sys、copy、os相關用法

Python的標準庫sys、copy、os相關用法

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))
這裡輸出結果為:
('the file name:', 'F:/Python work/1.py')
('the number of argument', 1)
('the argument is :', "['F:/Python work/1.py']")
這裡我在ide中直接執行的該檔案,因此檔案的地址加上檔名或作為命令列引數。

在傳遞的過程中我們顯示了命令列引數的第一項,總的長度,以及字串的顯示

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語句,這是用來操作檔案複製的。