[Python与数据分析]-24txt文件存的是每一个图片的名字,从另一个文件中找出对应名字的xml文件。python代码

用于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/")
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容