python常用处理文件路径操作

1.获取当前执行文件路径(入口文件)

import os
import sys

path1 = os.path.abspath(".")
path2 = os.getcwd()
path3 = sys.argv[0]
>>>
D:\python\work_chinasoft\18_12_13 
D:\python\work_chinasoft\18_12_13 
D:/python/work_chinasoft/18_12_13/test01.py
  1. os.path.split(path)

将path分割成目录和文件名二元元组返回

import os
import sys

directory, filename = os.path.split(sys.argv[0])
print(directory)
print(filename)

>>>
D:/python/work_chinasoft/18_12_13
test01.py
  1. os.path.dirname(path)

返回 path 的目录. 即 os.path.split(path) 的第一个元素

  1. os.path.basename(path)

返回 path 的目录. 即 os.path.split(path) 的第二个元素

  1. os.path.join()

将多个路径组合后返回

  1. os.path.normpath(path)

规范化路径

  1. os.path.splitex(path)

分离文件名与拓展名

import os
import sys

file_test = os.path.splitext(sys.argv[0])
print(file_test)

>>>
('D:/python/work_chinasoft/18_12_13/test01', '.py')
  1. os.listdir(path)

获取路径下文件名和目录列表

import os
import sys

file_list = os.listdir(os.path.dirname(sys.argv[0]))
print(file_list)

>>>
['hello world', 'test01.py']
  1. os.walk()

可以得到一个三元tupple(dirpath, dirnames, filenames), 第一个为起始路径,第二个为起始路径下的文件夹,第三个是起始路径下的文件。dirpath 是一个string,代表目录的路径,dirnames 是一个list,包含了dirpath下所有子目录的名字。filenames 是一个list,包含了非目录文件的名字。这些名字不包含路径信息,如果需要得到全路径,需要使用os.path.join(dirpath, name).通过for循环自动完成递归枚举

import os


def del_files(path):
    for root, dirs, files in os.walk(path):
        for name in files:
            if name.endswith(".py"):
                os.remove(os.path.join(root, name))
                print("Delete File: " + os.path.join(root, name))


# test
if __name__ == "__main__":
    path = '/test'
    del_files(path)

你可能感兴趣的:(自学总结)