用于yolov3
筛选测试的xml
文件
import os #导入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字符开头、结尾的\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() #关闭文件
os
模块:提供了对目录或者文件的新建、删除、查看文件属性,还提供了对文件以及目录的路径操作。比如“绝对路径、父路径…”但是,os
文件的操作还应该包括移动、复制、打包、压缩、解压等操作,这些os模块都没有提供。
shutil
模块:就是对os
中文件操作的补充,移动、复制、打包、压缩、解压。
readline()
:从字面意思可以看出,该方法每次读出一行内容,所以,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象。
readlines()
:读取整个文件所有行,保存在一个列表(list)
变量中,每行作为一个元素,但读取大文件会比较占内存
os.getcwd()
函数:获得当前的路径。该函数不需要传递参数,它返回当前的目录。需要说明的是,当前目录并不是指脚本所在的目录,而是所运行脚本的父目录。
shutil
:可以实现文件的复制,移动。
#复制文件:
shutil.copyfile("oldfile","newfile") #oldfile和newfile都只能是文件
shutil.copy("oldfile","newfile") #oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
#复制文件夹:
shutil.copytree("olddir","newdir") #olddir和newdir都只能是目录,且newdir必须不存在
#重命名文件(目录)
os.rename("oldname","newname") #文件或目录都是使用这条命令
#移动文件(目录)
shutil.move("oldpos","newpos")
shutil.move("D:/latest/1.pdf", "D:/past/")