用于yolov3
篩選測試的xml
文件
import os #導(dǎo)入os模塊
import shutil
if __name__ == '__main__':
f = open("test2.txt","r") #打開存有文件名字的txt文件
line = f.readline() #讀取文件的每一行
line = line[:-1] #去除了這行文本的最后一個字符(換行符)后剩下的部分馒过。
while line:
line = f.readline()
line = line.strip('\n') #刪除line字符開頭酗钞、結(jié)尾的\n字符
print(line) #打印行
path = os.getcwd() #獲取當前目錄
new_path = "F:\\beifen\Annotations\\"+line #xml文件名字
print(new_path) #打印新路徑
try:
shutil.move(new_path, 'F:\\123') #新文件移動到123文件中
except:
print("Not find error.") #異常處理
# print(path)
f.close() #關(guān)閉文件
os
模塊:提供了對目錄或者文件的新建、刪除砚作、查看文件屬性,還提供了對文件以及目錄的路徑操作蔼夜。比如“絕對路徑压昼、父路徑…”但是,os
文件的操作還應(yīng)該包括移動窍霞、復(fù)制、打包但金、壓縮、解壓等操作钱磅,這些os模塊都沒有提供似枕。
shutil
模塊:就是對os
中文件操作的補充,移動、復(fù)制输莺、打包味赃、壓縮虐拓、解壓侯嘀。
readline()
:從字面意思可以看出谱轨,該方法每次讀出一行內(nèi)容吠谢,所以,讀取時占用內(nèi)存小工坊,比較適合大文件,該方法返回一個字符串對象罢吃。
readlines()
:讀取整個文件所有行昭齐,保存在一個列表(list)
變量中,每行作為一個元素阱驾,但讀取大文件會比較占內(nèi)存
os.getcwd()
函數(shù):獲得當前的路徑。該函數(shù)不需要傳遞參數(shù)丧荐,它返回當前的目錄喧枷。需要說明的是虹统,當前目錄并不是指腳本所在的目錄隧甚,而是所運行腳本的父目錄。
shutil
:可以實現(xiàn)文件的復(fù)制夸赫,移動咖城。
#復(fù)制文件:
shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") #oldfile只能是文件夾呼奢,newfile可以是文件,也可以是目標目錄
#復(fù)制文件夾:
shutil.copytree("olddir","newdir") #olddir和newdir都只能是目錄握础,且newdir必須不存在
#重命名文件(目錄)
os.rename("oldname","newname") #文件或目錄都是使用這條命令
#移動文件(目錄)
shutil.move("oldpos","newpos")
shutil.move("D:/latest/1.pdf", "D:/past/")