美文网首页Python小推车python学习
Python学习打call第二十五天:文件操作修改模块

Python学习打call第二十五天:文件操作修改模块

作者: 暖A暖 | 来源:发表于2019-02-25 13:57 被阅读6次

    今天主要学习os模块、pathlib模块、sys模块、shutil模块、copy模块的操作~

    1.使用OS模块进行path路径操作

    • 操作的语法为os.path.方法名()
    import os # 首先导入os模块
    
    • abspath()方法:获取当前文件的全路径,所带参数为file
    file_path = os.path.abspath(__file__) # 获取当前文件的全路径
    print(file_path)
    
    • dirname()方法: 获取当前文件的目录全路径,所带参数为文件全路径;
    dir_path = os.path.dirname(file_path) # 获取当前文件的目录全路径
    print(dir_path)
    
    • join()方法:使用拼接方法来拼接路径,第一个参数为文件目录路径,第二个参数为需要拼接的路径;
    img_path = os.path.join(dir_path, 'img') # 拼接路径
    print(img_path)
    
    • basename()方法:获取文件名,所带参数为文件全路径;
    file_name = os.path.basename(file_path)  # 获取文件名
    print(file_name)
    
    • split()方法:切割方法, 获取目录和文件名,所得结果为一个元组;
    tuple_path = os.path.split(file_path)  # 获取目录和文件名
    print(tuple_path)
    

    2.pathlib模块

    • 使用pathlib模块需要导入Path类,将Path类实例化为一个path对象,或者直接使用Path类初始化新的路径;
    from pathlib import Path
    path = Path()
    print(path)  # 显示当前目录
    
    path1 = Path('var', 'log', 'message') # 路径初始化
    print(path1)
    
    path2 = Path('/var', 'log', 'message') # 路径初始化
    print(path2)
    
    • joinpath()方法:拼接路径;
    path3 = path2.joinpath('message.log') # 路径拼接 /var/log/message/message.log
    print(path3)
    
    • parent:返回目录路径;
    path4 = path3.parent  # 返回目录路径
    print(path4)
    
    • parents:返回一个路径对象,可通过for循环遍历获取;
    path5 = path3.parents  # 返回一个对象
    print(path5)
    
    • name:获取文件名;
    for i in path5:
        print(i)
    print(path3.name)  # message.log
    
    • suffix:获取扩展名;
    print(path3.suffix) # 扩展名
    
    • suffixes:获取扩展名列表,列表类型;
    print(path3.suffixes) # 扩展名列表
    
    • cwd()方法:获取文件当前名;
    print(path3.cwd()) # 当前目录
    
    • glob()方法:通配符方法,如'*.log',表示找到所有以.log结尾的文件;
    objs = path3.parent.parent.glob('*.log')  # 匹配目录下面以.log结尾的文件
    for i in objs:
        print(i)
    

    3.sys模块

    • 使用之前需要导入sys模块;
    import sys
    
    • sys.argv:实现从程序外部向程序传递参数;
    print(sys.argv[0])  # 当前文件路径
    print(sys.argv.__len__() -1)  # 参数个数
    
    print(sys.argv[1]) # 第一个参数
    
    • sys.path:获取指定模块搜索路径的字符串集合,可以将写好的模块放在得到的某个路径下,就可以在程序中import时正确找到;
    print(sys.path)  # Python的搜索路径
    
    • sys.exit(n): 退出程序,正常退出时exit(0) ;
    import sys
    print("开始")
    try:
        sys.exit(1)
    except SystemExit:
        print("中途退出")
    
    print("退出")
    
    # 输出:
    # 开始
    # 中途退出
    # 退出
    
    • sys.modules :返回系统导入的模块字段,key是模块名,value是模块 ;

    4.shutil模块

    • 使用之前需要导入shutil模块;
    • copy()方法:文件系统发级别的拷贝,将一个文件的内容拷贝到另一个文件中,类似于Linux系统的copy;
    import shutil
    # ./monitor.py 源文件
    shutil.copy('./monitor.py', 'hello.py')
    

    5.copy模块

    • 使用之前需要导入copy模块;

    • copy.copy():浅拷贝,只拷贝父对象,不会拷贝对象的内部的子对象;

    • copy.deepcopy():深拷贝,复制了对象和对象的所有子对象;

    import copy
    lst = [1,123]
    lst.copy() 
    # 浅拷贝
    string1 = copy.copy('321')
    print(string1)  # 321
    # 深拷贝
    string2 = copy.deepcopy('321')
    print(string2)  # 321
    

    6.文件路径斜杆问题

    • '/ ':正斜杆,linux下使用正斜杆作为分隔符;

    • '\ ':反斜杆,windows下使用的是反斜杆作为分隔符;

    • 注意:网页的背景图片路径必需是'/ '正斜杆,还有'\'反斜杆有时候代表转义符;

    参考:侠课岛(9xkd.com)Python同学计划

    相关文章

      网友评论

        本文标题:Python学习打call第二十五天:文件操作修改模块

        本文链接:https://www.haomeiwen.com/subject/rczwyqtx.html