【python】
批量檔案的編輯
開門見山,先上個圖:左邊框是要編輯的批量.pts檔案,中間框是每個.pts檔案的內容格式,下面框是用matlab載入失敗的提示。
這是最近在做人臉對齊的時候遇到的乙個問題:300w資料集中的大量.pts檔案的讀取問題,由於自己試過用matlab來載入.pts檔案,然而並沒有成功,手動刪除又因為.pts檔案確實太多,慢慢修改太難,目前想到乙個辦法就是刪除這幾行,然後直接用matlab直接載入資料,供後期訓練使用。
【這是我找到的解決這個問題的方法,若哪位大神有其它解決方案,還望不吝賜教,先在此謝過!!!】
批量修改檔案的型別,**很簡單【注意縮排】,如下:
注意:(1)將這個.py檔案儲存到你要修改的檔案的同一目錄下執行;
(2)這裡是將所有的.jpg檔案轉換成.png檔案,名稱保持不變。如果要將.pts轉換成.txt,只需要將第三四
行相應的位置換了就好,即:.jpg換為.pts,.png換為.txt。
批量修改檔案的型別,**很簡單【注意縮排】,如下:
注意:(1)將這個.py檔案儲存到你要修改的檔案的同一目錄下執行;
(2)這裡是將所有的.jpg檔案轉換成.png檔案,名稱按照讀取的順序依次為 「1.png」 「2.png」 等,如果你要
變成其它名字,只需要將str(i)修改為你想要的名稱就可以了。
刪除單個檔案的某一些行,**不複雜【注意縮排】,如下:
numoflines=[1,2,3,72] #是指要刪除的行,即:第1,2,3,72行。
i=1
openfilehandle=open('0.pts','r') #讀取待修改的檔案
writefilehandle=open('temp','w') #臨時檔案
while 1:
line=openfilehandle.readline() #讀取待修改檔案的行
if line:
if i in numoflines: #判斷當前行數是否為要刪除的行數,如果是,則不複製
i=i+1
continue
else:
i=i+1
writeline='%s'%line #不是要刪除的行就直接複製,寫入臨時檔案
writefilehandle.write(writeline)
else:
break
openfilehandle.close()
writefilehandle.close()
#os.remove('0.pts') #如果要刪除修改之前的檔案,只需要加上這一句話就好
os.rename('temp','0.txt')
print "finish!"
注意: (1)將這個.py檔案儲存到你要修改的檔案的同一目錄下執行;
(2)這裡是刪除了原始檔0.pts中的第1,2,3,72行,並儲存為0.txt檔案。
不再贅述,將上面的組裝起來就好了
【注意縮排】
。親測有效,如有
編輯錯誤之處,還望指出,多謝。
import os
numoflines=[1,2,3,72]
j=0k=1
for file in os.listdir("."):
if os.path.splitext(file)[1] == ".pts":
j=j+1
k=1openfilehandle=open(file,'r')
writefilehandle=open('temp','w')
while 1:
line=openfilehandle.readline()
if line:
if k in numoflines:
k=k+1
continue
else:
k=k+1
writeline='%s'%line
writefilehandle.write(writeline)
else:
break
openfilehandle.close()
writefilehandle.close()
os.remove(file)
os.rename('temp', os.path.splitext(file)[0]+".txt" )
ps:就如何載入上述格式的.pts檔案問題,若有其它解決方案,望不吝賜教。 python批量匯入檔案 python 批量匯入
usr bin envpythoncoding utf 8importmysqldbdefdb execute sql dbs mysqldb.connect host localhost user root passwd root db db port 3306 cursor dbs.cursor...
Python程式設計之批量修改檔案內容
本文簡介 本文主要介紹利用python批量處理資料夾中的檔案,並對其內容進行修改最後生成至另一資料夾中的實現過程。輸入示例檔案 示例 import os path c users administrator desktop input 資料夾位址 for root,dirs,files in os....
python指令碼程式設計 批量複製或刪除檔案
批量複製或者刪除檔案,複製 刪除 就等於移動,呵呵 coding utf 8 import os import shutil 遞迴複製資料夾內的檔案 defcopyfiles sourcedir,targetdir 忽略某些特定的子資料夾 if sourcedir.find exceptionfol...