首页 > 编程语言 >python 目录操作

python 目录操作

时间:2023-11-17 15:14:50浏览次数:32  
标签:name python pathlib file path print 操作 os 目录


__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)

标签:name,python,pathlib,file,path,print,操作,os,目录
From: https://www.cnblogs.com/HeroZhang/p/17838790.html

相关文章

  • CH32V20x_30x系列用户选择字区域应用与操作
    来源:https://www.cnblogs.com/liaigu/p/17838776.html简介CH32V20x系列、V30x系列用户选择字区域大小为128字节,除却用户选择字信息结构用到的16字节,还剩余112字节可作为他用,用来存储相关数据等。注意剩余空间在使用时,和上述一致,若[7:0]为数据,则[15:8]为数据的反码。此外,在对剩......
  • 测试某个python库是否正常导入
    我这里的测试代码:python-c"importmagenta"出现错误:/Users/ghj1976/opt/anaconda3/envs/magenta/lib/python3.7/site-packages/librosa/util/decorators.py:9:NumbaDeprecationWarning:Animportwasrequestedfromamodulethathasmovedlocation.Importrequested......
  • python装饰器
    装饰器概念:可以在不修改原来代码的情况下(函数原有的功能或者类原有的功能),为需要被装饰的函数或者类增加新的功能或者添加限制调剂以及帮助输出常用种类函数的装饰器类的装饰器不管是哪种类型的装饰器设计模式原则是:开放封闭的原则(对外扩展开发,对内关闭修改)1.1装饰器的定......
  • xlsxwriter基本操作
    xlsxwriter是一个用于创建和修改Excel文件(.xlsx)的Python库。它提供了丰富的功能,可以创建复杂的Excel工作簿,包括工作表、图表、图像,以及设置单元格样式和格式等。创建一个新的Excel文件并添加工作表importxlsxwriter#创建一个新的Excel文件workbook=xlsxwriter.Workbook(......
  • 【Python入门教程】Python中类的用法和意义
    ​        在Python中,类是一种重要的面向对象编程概念。它们为我们提供了一种方法,可以将现实世界中的对象抽象为代码中的类,并通过类创建对象的实例。类定义了对象的结构和行为,使我们可以构建复杂的程序和数据模型。一、类的定义        在Python中,类的定义使......
  • python-tkinter去除命令日志
    Python打包exe文件后,执行exe文件总会打开命令行窗口,通过查找相关解决的方法,经过亲测,介绍几种可行的方案。修改文件名后缀将.py文件改成.pyw文件(使用的是脚本解析程序pythonw.exe)修改打包命令pyinstaller-i添加图标        -w去除命令行解决报错AttributeError......
  • ! (空引用忽略判断) 操作符 (C# reference)
    ref: https://learn.microsoft.com/en-us/dotnet/csharp/language-reference/operators/null-forgiving主要是.Net6开始判断引用类型是否空,在项目文件中  PropertyGroup节点下  <Nullable>enable</Nullable,代表开启 ,在这个情况我想某个变量或者属性引用不要......
  • 操作系统的抢占、重入
    参考:https://blog.csdn.net/m0_64727117/article/details/130976784一、抢占式内核、抢占式调度、抢占式中断:某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务。抢占式内核的优点:(1)最高优先级的任务什么时候可以执行,可以得到CPU的使用权是已知的......
  • Python 中将 None 转换为 0
    如何在Python中将None转换为0–码微(mwell.tech)some_number=Noneresult=some_numberor0print(result)#......
  • bulk批量操作的json格式解析
    3.17bulk批量操作的json格式解析bulk的格式:{action:{metadata}}\n{requstbody}\n为什么不使用如下格式:[{"action":{},"data":{}}]这种方式可读性好,但是内部处理就麻烦了:1.将json数组解析为JSONArray对象,在内存中就需要有一份json文本的拷贝,另外还有一个JSONArray对象。2.解析jso......