python-os模块使用以及文件查找功能

python-os模块使用以及文件查找功能

1. os模块使用
  • os.getcwd() : 当前程序的绝对路径
  • os.listdir(路径):获取路径下的所有内容,返回一个list
print(os.getcwd)
''''E:\\test''''

print(os.list('C:\\'))
'''
['$360Section', '$baksd', '$Recycle.Bin', '$WinREAgent', 'AMTAG.BIN', 'Aomei', 'bootmgr', 'BOOTNXT', 'Config.Msi', 'Documents and Settings', 'DumpStack.log', 'DumpStack.log.tmp', 'hiberfil.sys', 'HP_LaserJet_Pro_MFP_M426-M427', 'Intel', 'KingsoftData', 'pagefile.sys', 'PerfLogs', 'Program Files', 'Program Files (x86)', 'ProgramData', 'Python27', 'Recovery', 'swapfile.sys', 'System Volume Information', 'TsdTemp', 'Users', 'Windows', 'XmpCache']
'''
2. os.path模块使用

有个习惯说明一下:路径最后补上/或者\,这样会能保证不会出错。

  • os.path.abspath(路径) : 返回绝对路径
  • os.path.dirname(路径) : 按照最后一个/、\切割的前部分
  • os.path.basename(路径) :按照最后一个/、\切割的后部分
  • os.path.join(路径1, 路径2):路径拼接。
  • os.path.isfile(路径) : 判断是否是文件
  • os.path.isdir(路径) : 判断是否是文件夹
print(os.path.abspath('./'))
# E:\\test

print(os.path.dirname('E:\\test'))
# E:\

print(os.path.basename('E:\\test'))
# test

print(os.path.join('E:\\', 'test'))
# E:\test

print(os.path.isdir('E:'))
# True

print(os.path.isfile('E:')) 
# False
3. 进阶使用-递归查找嵌套文件夹下的特定文件
import os


def find_files(path):
    files_list = []
    sub_files = os.listdir(path)

    for sub_file in sub_files:
        sub_file_path = os.path.join(path, sub_file)
        abs_sub_file_path = os.path.abspath(sub_file_path)
        if os.path.isfile(abs_sub_file_path):
            files_list.append(abs_sub_file_path)
        else:
            sub_files_list = find_files(abs_sub_file_path)
            files_list += sub_files_list
    return files_list

你可能感兴趣的:(python,windows,开发语言)