使用python處理檔案

來源:互聯網
上載者:User

背景:

260個學生,分52組,每組1-6人,交作業時只需要一個人代表整個team交,有多次作業,每次可以由不同的人提交。

檔案名稱格式為:學號_姓名。我只負責其中9組,所以要從52個組內挑出我負責的9組,每次對著40多個人的名單從50多個檔案名稱中檢索出其中9個,太麻煩。

於是想用指令碼挑出我自己負責的那部分,可是又不會windows下的shell,其實linux下也不會。。。。

剛好學了python,就打算用python處理一下。


代碼如下:

import osname = "homework2" ###select files in which dir,需要處理的檔案所在檔案夾####我負責的9個組的學號,每行一個teamtasks=(111250116,111250158,111250196,111250198,111250222,       111250199,111250200,111250210,111250211,128351018,       111250114,111250206,111250213,111250242,111250244,       111250153,111250171,111250214,101250032,101250038,       111250184,111250189,111250205,111250215,111250223,       111250207,111250212,111250216,111250217,111250232,       111250209,111250218,111250231,111250236,101250202,       111250202,111250228,111250235,111250243,111250252,       111250226,111250227,111250229,111250230,111250240)####定義一個尋找函數,尋找給定的學號是不是在我負責的名單裡,####在就返回在元組裡的編號,否則返回-1def find(num):    n=0    while n<len(tasks):        if(tasks[n]==num):            return n;        n = n+1    return -1files = os.listdir(name)###列出目錄下所有檔案curdir=os.path.join(os.getcwd(),name)###得到需要處理檔案所在目錄絕對路徑print curdirfor f in files:    #print f    num = (int)(str(f)[:9])####前9位為學號    res = find(num)    fp = os.path.join(curdir,f)###當前處理的檔案的絕對路徑    #print fp    if res==-1: ##not finds        os.remove(fp) ##delete file刪除檔案,參數需要為絕對路徑        print "remove "+f+"..."    else: ###rename to add team id         fn = "team_" + str((int)(res/5+37)) + "_" + f  ##檔案名稱加所在組首碼        fnp= os.path.join(curdir,fn)        os.rename(fp,fnp)###重新命名檔案        print "rename "+fn#print filesprint "done."temp = input("press ENTER to exit...")

運行效果很好,比手工尋找效率高的多。。。

指令碼真好用。。。比c/c++/java之類的簡單的多。。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.