191220 python学习笔记——os包

情境:今天在做人工智能课题。要把做好的图像的文件夹一个个改名改成患者的id_label,结果写错了,忘了加"_label",40多个文件又懒得一个个改,就学了一下用python批量改文件,这次用了os包。

os包的应用

参考链接:https://www.jianshu.com/p/6b699e9cea1f
思路:获取所有的文件夹名字,组成一个列表。写一个循环,历遍这个列表,把每个文件夹的名字取出改成id_label。
要用的包:os包

应用的代码

path = 'D:/AIproject/0/_jpg/'                        #先指定一个路径,可以理解为一个working diretory
filename = os.listdir(path + 'label/')
#将label文件夹里的所有文件名都列出来形成一个列表,理想情况是这个列表里有所有病人的id号
for i in filename:  #建立一个循环来历遍整个列表
    name = i
    newname = i + '_label'
    #以上两个变量是旧的名字和新的名字
    os.rename(path+'label/'+name,path + 'new/' + newname)
    #os.rename(oldpath,newpath),这里的path要精确到文件名,因为会连着文件名一起改掉,可以看下面语法里的6
newfilename = os.listdir(path + 'new/')
newfilename     #看看新的名字对不对

补充一些语法

所有path指绝对路径,写的时候均应该加上引号写成字符串
**在windows里path路径用的是 \ ,但是在python里应该使用 / **

  1. os.name
    输出字符串指示正在使用的平台。如果是window 则用'nt'表示,对于Linux/Unix用户,它是'posix'。(不用加括号)
  2. os.getcwd()
    函数得到当前工作目录,即当前Python脚本工作的目录路径。(get current working dirtory)
  3. os.listdir( path )
    返回指定目录下的所有文件和目录名。当前目录下的,路径要绝对路径,不会往深层递归
  4. os.mkdir( path )
    创建新目录,path为一个字符串,表示新目录的路径,相当于mkdir命令
  5. 几个删除命令:
    -os.rmdir( path )删除目录,只能删除空文件夹,文件夹里有东西会返回OSError
    -os.removedir( path )递归删除目录。类似于rmdir(), 如果子文件夹成功删除, removedirs()才尝试它们的父文件夹,直到抛出一个error(报错一般代表你文件夹里有东西)
    -os.remove( path )删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError
  6. rename(src, dst)
    重命名文件,src和dst为两个路径,分别表示重命名之前和之后的路径。

其他的以后用到了再补充吧

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