arcgis批量处理nc文件_法律行业python教程——利用python批量处理文件之批量重命名...
對法律小伙伴們,尤其是律師助理和做非訴業(yè)務(wù)的小伙伴們,大量的重復(fù)瑣碎的文件處理工作是不是常常讓人失去工作的興趣呢?
這里就不得不提到python工具的運用啦,一定要記住編程的思想是什么:
1、制作工具實現(xiàn)自動化工作;
2、拒絕重復(fù)工作;
不光對法律行業(yè),所有含有大量文件文檔工作內(nèi)容的朋友們,都應(yīng)該嘗試學(xué)習(xí)使用python來構(gòu)建自己的個性化處理工具。接下來廢話不多說,我們直接進入主題。
準備工作:
1、老生常談,再提一下,python3 和Pycharm工具的安裝。
2、配置頭文件:
#encoding:utf-8 import os這里第一行#encoding:utf-8可加可不加,但為了培養(yǎng)好習(xí)慣,建議大家每次都加上這一行,意思的默認編碼為utf-8編碼,以免中文處理的時候出現(xiàn)亂碼。
第二行import os,導(dǎo)入os庫,這個庫是python默認安裝的庫,不需要另外安裝,直接導(dǎo)入就行,這個OS庫是一個非常常見的python處理文件和目錄的庫,有了這個輪子,我們可以非常直接的對文件進行自動化處理。
接下來,我們就可以嘗試各種文件處理操作了。
對于沒有編程基礎(chǔ)知識的朋友,需要先補充一下目錄與路徑的基礎(chǔ)知識。如果已了解,可以直接跳過。
- 目錄的定義很簡單,簡而言之就是文件夾,可再細分為一級目錄、二級目錄、三級目錄。目錄的概念沒必要深究。只要知道每個計算機系統(tǒng)都有一個根目錄,用正斜杠“/”表示。根目錄下的文件夾,比如“/root”,就表示根目錄下的root文件或文件夾。
- 路徑(PATH)可分為絕對目錄和相對目錄。一般來講,路徑指的是當(dāng)前文件所在的位置,這個位置需要包含文件的文件名及其后綴。以win10系統(tǒng)中下圖舉例:
首先我們以上圖中的圖片文件“1.png”(以下簡稱“圖片1”)作為對象,其絕對路徑為:“D:娛樂美劇2.png” (“”反斜杠是win系統(tǒng)的表示方式,用正斜杠亦可) 。路徑“./2.png”(以下簡稱“圖片2”)就是圖片1用來表示圖片2位置的相對路徑。這里的“./”可以省略,簡化為“2.png”。圖中文件夾仁醫(yī)內(nèi)的文件可以表示為:“仁醫(yī)/123.jpg”。上一級目錄(文件夾)中的相對路徑可以用“../”表示相對路徑,也可以直接用絕對路徑表示,上圖中比如下面這個"abc.txt",可以表示為圖片1的相對路徑:"../abc.txt",或者絕對路徑“D:/娛樂/abc.txt”。
需要注意的是,相對路徑是以某個文件為對標才存在的概念。絕對路徑無論什么時候都是可以用來表示位置的。
一、文件的遍歷操作
了解了文件的位置概念,我們來看下文件的遍歷。什么叫文件的遍歷,就好比點人頭一樣,每個人點一遍名字,點的過程當(dāng)中,你可以對其進行操作。接下來看一段代碼大家就明白了:
for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夾print("parent:",parent,"dirnames:",dirnames,"filenames:",filenames)for filename in filenames:file_path = os.path.join(parent, filename)上面os.walk是os庫中的一個方法,可以遍歷一個目錄下的所有文件,返回三個值,也就是我們聲明的parent, dirnames, filenames三個值,分別代表上級目錄,子目錄,和文件名稱。同時我們再在上面的基礎(chǔ)上,對文件名filenames進行遍歷,就可以遍歷指定文件夾中所有的文件啦(包括子文件)。這里最后得到的值file_path,就是根據(jù)你輸入的地址,這里是“wenshu”文件夾得到的相對路徑。看不懂代碼也沒關(guān)系,照抄過來,在“wenshu”的位置輸入你想要代替的文件夾位置,即可遍歷該文件夾下所有的文件。
那么遍歷文件有什么用呢?太有用了,遍歷文件意味著你可以一次性操作所有的文檔,包括文件名修改、文件刪除、文件轉(zhuǎn)換、文件內(nèi)容替換、文件信息檢索等等。
接下來一一演示給大家看以下:
二、文件名批量修改
一般來說,windows系統(tǒng)下,我建議使用絕對路徑,因為文件層級多了,使用相對路徑有時候會報一些莫名其妙的錯誤,對新手不友好。這里我在上面基礎(chǔ)上增加了兩行代碼,通過字符串拼接獲取每個文件的絕對路徑。
for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夾print("parent:",parent,"dirnames:",dirnames,"filenames:",filenames)for filename in filenames:file_path = os.path.join(parent, filename)rootPath="C:堅果云我的堅果云綜合其他py_projectTeaCases文檔處理重命名"target=rootPath+file_path #我們要操作的每個文件的絕對路徑上圖中,我們要將wenshu這個文件夾中的文件全部重新命名,怎么操作呢,非常簡單:
for parent, dirnames, filenames in os.walk('wenshu', followlinks=True): #dirnames 子文件夾for filename in filenames:file_path = os.path.join(parent, filename)if filename.endswith(".doc") or filename.endswith(".docx"):rootPath="C:堅果云我的堅果云綜合其他py_projectTeaCases文檔處理重命名"target=rootPath+file_path pre_name=filename.split(".")[0] #split是將字符串分割的函數(shù),這里根據(jù)"."分割,獲取不帶后綴的文件名after_name=filename.split(".")[1] #文件名后綴,例如“docx”newTarget=rootPath+'wenshugoodguy'+ str(index) +"."+after_name #新的文件的絕對路徑os.rename(target,newTarget)index=index+1因為不能在一個文件夾里存在多個同名文件,所以我們這里依次以數(shù)字表示,index從1開始,每成功一次,增加1。最終我們可得到的結(jié)果就出來了。
目標文件夾中的文件全部都變成了goodguy和數(shù)字的組合,文件類型也不會改變。
通過上面的步驟,我們實現(xiàn)了文件目錄里所有文件的重命名。有幾個簡單知識點,記得復(fù)盤哦。第一,目錄和路徑的含義。第二,文件夾所有文件的遍歷操作。第三,重命名操作。
其實都非常簡單,只要掌握了文件遍歷操作,還可以實現(xiàn)更多其他操作,因為筆者時間有限,同時擔(dān)心內(nèi)容太多難以消化,故在下次文章當(dāng)中繼續(xù)介紹。
作者原創(chuàng),非經(jīng)授權(quán)拒絕轉(zhuǎn)載,違者必究。
作者:虞元堅 上海正策律師事務(wù)所 律師 全棧網(wǎng)絡(luò)工程師/法律大數(shù)據(jù)應(yīng)用領(lǐng)域?qū)<摇I瞄L領(lǐng)域:爭議解決與訴訟、與軟件開發(fā)和互聯(lián)網(wǎng)相關(guān)的知識產(chǎn)權(quán)、不正當(dāng)競爭、經(jīng)濟犯罪、科技產(chǎn)業(yè)投融資等。歡迎關(guān)注法律大數(shù)據(jù)公眾號,和律師朋友們都在使用的隨身工具——律師云助理。
歡迎關(guān)注法律大數(shù)據(jù)公眾號和使用律師云助理小程序總結(jié)
以上是生活随笔為你收集整理的arcgis批量处理nc文件_法律行业python教程——利用python批量处理文件之批量重命名...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SpringBoot中的自定义路径怎么配
- 下一篇: Thymeleaf一些标签的传字符串/m