python指令碼的編寫和需要的模組

2021-06-03 21:02:23 字數 2219 閱讀 3643

看python已經有乙個月了。

近幾天突發奇想,想使用python來簡單地設計乙個檔案拷貝管理指令碼。這個指令碼會讀取乙個指定目錄下的所有檔案,然後會把這些檔案按照輸入的引數重新命名為新的檔案。目錄和新檔案的名字都是作為命令給定的。後面會再了解一下wxpython的東西,設計成乙個具有良好gui的軟體。

1、先說說命令列的情況。

昨天查到像linux下的命令列引數形式用python實現起來很簡單。首先使用「import sys」呼叫sys模組,在你的指令碼中可以使用sys.argv這個變數可以直接得到輸入的引數。sys.argv這個引數是乙個列表,它會記錄你在命令列中所有的引數。如乙個python指令碼command_line.py中的**如下:

#filename: command_line.py

import sys

print sys.argv           #返回乙個輸入的引數的列表

print len(sys.argv)    #返回輸入的引數的個數

我們在shell中輸入 : python  command_line.py  -h -i infile.txt

這是列印出來的資訊是  :['abc.py', '-h', '-i', 'infile.txt']

其中,sys.argv[0]對應"abc.py",sys.argv[1]對應"-h",依次類推。

是不是很簡單呢?呵呵!

想進一步的把指令碼寫的更實用一點呢,我們可以再呼叫python中的乙個模組getopt。改模組中的方法getopt可以帶給我們更美妙的處理。在上面的指令碼中新增一些新程式如下:

#filename: command_line.py

import sys

print sys.argv           #返回乙個輸入的引數的列表

print len(sys.argv)    #返回輸入的引數的個數

#下面的**是新新增的

import getopt

opts, args = getopt.getopt(sys.argv[1:], "hi:o:")

print "  the opts is:" 

print opts                   #opts是乙個列表,其中的元素為元祖

print "  the args is:"

print args                    #args也是乙個列表,其中的元素為字串

此時我們執行程式:$python command_line.py -h -i input -o output abc

程式的執行結果為(僅僅列出了列印opts和args的結果):

the opts is:  

[('-h', ''), ('-i', 'input'), ('-o', 'output')]

the args is:

['abc']

getopt.getopt根據後面括號中的引數返回兩個東西,這裡我們用兩個變數(opts和args)來接受它們。其中getopt.getopt返回的第乙個引數為帶開關的引數。如 「-i input」會被記錄成為乙個元祖,即('-i', 'input')。有些命令開關後面不帶引數,則記錄的元祖中第二個引數就是空字串,如"-h"被記錄成('-h', '')。這些命令開關在getopt方法中必須得給出,括號中的"hi:o:"即我們給定的開關。沒有在那個引數位置給出的開關如果被使用會出現錯誤,可以使用python中的error進行處理。給出第二個引數是記錄沒有開關的引數。如這裡的abc會被記錄成乙個列表['abc']。

2、在指令碼中使用linux的shell中的命令

首先呼叫os模組。然後在指令碼中使用os.system('shell中的命令')來使得shell中的命令可以直接在python指令碼中執行。

import os 

os.system('ls -l')

os.system("cp 321.py 1234567.py")

不這樣使用也行。因為在python中的os,os.path兩個模組中有大量的方法可以實現如同shell中的各種命令。如os.listdir('home/')會列出home目錄下所有的目錄和檔案,就像使用ls home/的效果一樣。

另外乙個模組shutil中有很多方法可以實現對目錄和檔案的諸如複製、刪除等等操作。

有了這幾個模組(sys、getopt、os、os.path、shutil),我的這個指令碼的功能便可以很輕鬆地搞定。更進一步的是對wxpython學習來進行gui的設計。

python編寫api原則 編寫api需要一些建議

聽起來好像您已經在python方法中定義了所有api功能,因此您可以使用pythonweb服務框架來直接或通過簡單的包裝器服務類公開它們。我建議你看看關於web services at python.org的wiki頁面。在 如果您想使用json作為web服務的傳輸協議,我建議您使用json rpc...

指令碼編寫 拍攝Vlog,如何構思和編寫指令碼?

拍攝vlog,如何構思和編寫指令碼呢?乙個完整的 好的vlog,是由 主題 形式 時長 內容 構成。時間不要太短,也不要過長,控制在1分鐘到5分鐘之內最佳,內容是vlog最重要的組成部分,要讓別人對你拍的事物和人感興趣。一 指令碼的前期策劃和構思 1 你想要拍什麼型別的vlog?是美食 旅遊還是三農...

簡單的指令碼編寫

1 練習 寫乙個指令碼 判斷當前系統上是否有使用者的預設shell為bash 如果有,就顯示有多少個這類使用者 否則,就顯示沒有這類使用者 grep bash etc passwd dev null retval if retval eq 0 then if grep bash etc passwd...