python 目录操作


__author__ = 'Administrator'
# _*_ coding: UTF-8 _*_
# @Create by gengyu
# @Create Time :2021/12/4
# @File_name : exists
# wn.run/https://
import os,sys,pathlib
import glob
import shutil
'''
this is __doc__
'''
def test1():
    # 获取当前目录
    # base_path = pathlib.Path.cwd()
    base_path = os.getcwd()

    # 获取当前文件绝对目录(path+file_name)
    # <class 'list'>
    path = sys.argv
    # <class 'str'>
    path1 = sys.argv[0]
    path2 = __file__
    path3 = pathlib.Path(__file__)

    # 获取当前文件名称
    name = os.path.basename(__file__)
    name1 = os.path.basename(path1)
    print(name)

    # 获取指定路径下所有文件名称,保存到一个列表中。不填参数默认获取当前目录下所有文件名称
    path_list = os.listdir()
    print(path_list)

    # 检测文件是否存在
    res = os.path.isfile(r'C:\Users\Administrator\PycharmProjects\python_switch\myexcel.xlsx')
    print(res)

    # 判断是文件还是目录
    p = pathlib.Path(r'C:\Users\Administrator\PycharmProjects\python_switch\myexcel.xlsx')

    if p.is_dir():
        print('目录存在')
    if p.is_file():
        print('指定文件存在')
    if p.exists():
        print('指定文件或目录存在')

    print('44')
    file_name = r'C:\Users\Administrator\PycharmProjects\python_switch\myexcel.xlsx'
    try:
        pathlib.Path("/path/to/file").resolve()
        # with open(r'%s' % file_name,'r',encoding='utf-8'):
        #     pass
    except FileNotFoundError:
        print('文件不存在')
    else:
        print('文件存在')

def test2():
    # 获取当前文件所在目录下所有的txt文件。返回一个列表,不遍历子文件夹下文件
    res = glob.glob('*.txt')
    print(res)

    # 把所有的 txt 文本全部移动到 archive 目录当中
    for file_name in glob.glob('*.txt'):
        new_path = os.path.join(r'd:/python/', file_name)
        shutil.move(file_name, new_path)

    # 使用pathlib新的写法,不支持不同磁盘移动文件
    for file_name in glob.glob('*.xlsx'):
        pathlib.Path(file_name).replace(r'c:/%s' % file_name)

    # 获取文件的绝对路径
    file = pathlib.Path('python_switch.py')
    print(file.resolve())

    # 获取文件的上一级目录
    file1 = pathlib.Path(r'C:\Users\Administrator\PycharmProjects\python_switch\python_switch.py')
    print(file1.parent)
    print(file1.parents[0])

# exist_ok=True 表示当文件存在时,不进行任何操作,如果不存在则创建文件
# exist_ok=False 表示当文件存在时,会报FileExistsError,文件已存在
file = pathlib.Path('test.txt')
file.touch(exist_ok=True)

# 删除目录,包括子文件夹
# shutil.rmtree('huawei', ignore_errors=True)
# 删除目录,当目录不为空时,无法删除
# os.removedirs('huawei')
# # 删除目录,当目录不为空时,无法删除,会报OSError
# if pathlib.Path('huawei').exists():
#     os.rmdir('huawei')

# # 创建目录,os.mkdir() 只能创建一级目录,当文件已存在时,无法创建该文件
# if not pathlib.Path('huawei').exists():
#     os.mkdir('huawei')
# # os.makedirs() 可以创建多级目录,exist_ok=True 表示当目录存在时,不进行任何操作,如果不存在则创建目录
# os.makedirs('huawei/hisi/baidu',exist_ok=True)

posted @ 2023-11-17 15:03  冀未然  阅读(27)  评论(0)    收藏  举报