Python脚本随笔-文件操作

刚开始实习,需要用python写脚本,记录一下常用的文件操作。文件操作需要用到的库:os

  • 路径操作

 

    1. 获取当前路径:os.getcwd(),返回值为一个字符串。例如:rootdir = os.getcwd()
    2. 路径拼接:os.path.join(parameter1,parameter2,parameter3.....),返回值会按照参数顺序将之拼接为一个路径。例如:
      1. 当前目录的上级目录:rootdir = os.path.join(os.getcwd(),"..")
      2. 当前目录下的path1目录:rootdir = os.path.join(os.getcwd(),“path1”)
    3. 判断文件是否存在:if os.path.isfile(path):path表示文件路径。例如:if os.path.isfile(rootdir+"file.txt"):
    4. 判断文件夹是否存在:if os.path.exists(path):path表示文件夹。例如:if os.path.isfile(rootdir):
    5. 路径操作举例:
      import os
      #获取当前路径
      print '***PathNow***'
      print os.getcwd()
      print os.path.abspath(os.path.dirname(__file__))
      #获取上级路径
      print '***HighPath***'
      print os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
      print os.path.abspath(os.path.dirname(os.getcwd()))
      print os.path.abspath(os.path.join(os.getcwd(), ".."))
      #获取上上级路径
      print '***HigherPath***'
      print os.path.abspath(os.path.join(os.getcwd(), "../.."))

      依次输出py文件所在的绝对路径和上级绝对路径

  • 文件的遍历:
    1. list = os.listdir(path1) 
          for i in range(0,len(list)):
              path = os.path.join(rootdir,list[i])
      

      list是path1下的文件列表,path是path1下的文件绝对路径文件的指定查找: 

  • 文件的查找
    1. 第一种查找方法:字符串分割
      if os.path.splitext(path)[1]==".txt"
      

      “.txt”为文件绝对路径的后缀,path表示文件绝对路径,路径最后一层为文件名

    2. 实现函数举例
      def delate_type_file(target,filetype):
          rootdir = os.path.join(os.getcwd(),target)
          list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
          for i in range(0,len(list)):
              path = os.path.join(rootdir,list[i])
              if os.path.splitext(path)[1]==".txt":#.txt为文件后缀,用filetype替换
                  print(os.path)
                  os.remove(path)

      filetype为文件名后缀

    3. 第二种查找方法:判断文件绝对路径的截止字符
      if f.endswith(".txt")
      

      ".txt“表示文件绝对路径后缀,path表示文件绝对路径,路径最后一层为文件名

    4. 实现函数举例:
      def delate_type_file2(target,filetype):
          rootdir = os.path.join(os.getcwd(),target)
          list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
          for f in list:
              if f.endswith(".txt")  #".txt"为文件后缀,可用filetype替换
              #文件操作

      filetype为文件名后缀

  • 文件的删除
    1. 先判断是否要删除的绝对路径为有效文件,之后删除
      if os.path.isfile(path):
          os.remove(path)
      

      os.remove函数参数为字符串,表示要删除的文件所处的绝对路径

    2. 删除函数举例:
      #文件的删除:删除当前目录下target文件夹中的所有文件
      def delate_file(target):
          rootdir = os.path.join(os.getcwd(),target)
          print rootdir
          list = os.listdir(rootdir) #列出文件夹下所有的目录与文件
          for i in range(0,len(list)):
              path = os.path.join(rootdir,list[i])
              if os.path.isfile(path):
                  print(os.path)
                  os.remove(path)
      

      target为当前py文件所在的文件夹中的一个子文件名

  • 文件的重命名
    1. 调用函数:os.rename,需要传入两个参数。第一个参数为文件原始绝对路径,第二个参数为文件新的绝对路径
      #path路径下把后缀为old_name的文件修改为后缀为new_name的文件
      def rename_file(path,old_name,new_name):
          list = os.listdir(path)
          for f in list:
              portion = os.path.splitext(f)
              if portion[1] == old_name:
                  new = portion[0] + new_name
                  filenamedir = path + "\\" + f
                  newnamedir = path + "\\" + new
                  print(filenamedir)
                  print(newnamedir)
                  os.rename(filenamedir,newnamedir)
      

      filenamedir为原始文件绝对路径,newnamedir为新文件绝对路径

  • 文件的复制
    1. 需要调用shutil库的copyfile函数,copyfile函数需要传入两个参数。第一个参数为文件原始绝对路径,第二个参数为文件新的绝对路径
      #文件的复制:从路径1复制指定类型的文件到路径2,需要调用shutil库的copyfile函数
      from shutil import copyfile
      def copy_file(path1,path2,last_name):
          list = os.listdir(path1) #列出文件夹下所有的目录与文件
          for i in range(0,len(list)):
              path = os.path.join(rootdir,list[i])
              if path.endwith(last_name):
                  copyfile(path1,path2)

 

posted @ 2019-07-23 11:05  帝渊凯  阅读(449)  评论(0编辑  收藏  举报