加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Python脚本随笔-文件操作

发布时间:2020-12-20 12:58:41 所属栏目:Python 来源:网络整理
导读:刚开始实习,需要用python写脚本,记录一下常用的文件操作。文件操作需要用到的库:os 路径操作 ? 获取当前路径:os.getcwd(),返回值为一个字符串。例如:rootdir =?os.getcwd() 路径拼接:os.path.join(parameter1,parameter2,parameter3.....),返回值会

刚开始实习,需要用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,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,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,list[i])
              if path.endwith(last_name):
                  copyfile(path1,path2)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读