精华内容
下载资源
问答
  • 主要介绍了python3中os.path模块下常用的用法总结 ,需要的朋友可以参考下
  • os.path模块主要用于文件的属性获取,在编程中经常用到,以下是该模块的几种常用方法。感兴趣的朋友跟随小编一起看看吧
  • path模块包含一系列处理和转换文件路径的工具集,通过 require('path') 可用来访问这个模块。本文将详细介绍path模块
  • Python os.path模块的使用

    千次阅读 2019-08-14 23:09:40
    Python os.path模块的使用 Python的os模块是一个对接操作系统的模块,当我们需要对路径进行操作时,可以使用os.path。 os.path模块实现了很多处理长文件名,长路径名的函数,可以用来对路径切分,拼接,转换等。 ...

    Python os.path模块的使用

    Python的os模块是一个对接操作系统的模块,当我们需要对路径进行操作时,可以使用os.path。

    os.path模块实现了很多处理长文件名,长路径名的函数,可以用来对路径切分,拼接,转换等。

    先导入os模块,然后就可以使用 os.path 模块了。

    一、os.path获取路径

    # coding=utf-8
    import os
    
    
    # 返回当前位置的绝对路径
    print(os.getcwd())
    print(os.path.abspath('.'))
    # 返回path的真实路径
    print(os.path.realpath('..'))
    # 返回从start开始计算的相对路径
    print(os.path.relpath('.', '/home/python/Desktop'))

    运行结果:

    /home/python/Desktop/python_demo/os_test
    /home/python/Desktop/python_demo/os_test
    /home/python/Desktop/python_demo
    python_demo/os_test

    在本文中,运行的系统是Linux系统,当然,这些方法在windows下全部都是可以使用的,只要传入正确的值就行。

    一开始,我使用os.getcwd()打印了当前所在的绝对路径: /home/python/Desktop/python_demo/os_test,当前的位置是根目录下的用户家目录下的python用户的桌面下的python_demo下的os_test目录中,上面运行的代码写在os_path_demo.py文件中。这很简单,但这是本文所有运行结果的前提,所以先说明一下。

    os.path.abspath(path) 返回path的绝对路径,传入 . 和 .. 也可以,分别会返回当前路径和上级目录的绝对路径。

    os.path.realpath(path) 返回path的真实路径,与abspath(path)的结果相同。

    os.path.relpath(path, start) 返回path相对于start的相对路径,也就是从start目录找到path的路径。

    二、os.path对路径进行处理

    # 返回文件夹的名字或文件名
    print(os.path.basename('./os_path_demo.py'))
    print(os.path.basename('/home/python/Desktop/python_demo/os_test'))
    # 返回多个路径共有的最长的路径
    print(os.path.commonpath(['/home/python/Desktop/python_demo/os_test', '/home/python/Desktop/python_demo']))
    # 返回文件夹或文件所在的路径(可能会有问题)
    print(os.path.dirname('/home/python/Desktop/python_demo/os_test/os_path_demo.py'))
    # 返回路径是否存在
    print(os.path.exists('/home/python/Desktop/python_demo/os_test'))
    print(os.path.lexists('/home/python/Desktop/python_demo/os_test'))
    # 把路径中的“~”转换成用户目录(可能会有问题)
    print(os.path.expanduser('~/Desktop/python_demo/os_test'))
    # 把路径中的环境变量换成路径  env  export
    print(os.path.expandvars('${SHELL}'))
    

    运行结果:

    os_path_demo.py
    os_test
    /home/python/Desktop/python_demo
    /home/python/Desktop/python_demo/os_test
    True
    True
    /home/python/Desktop/python_demo/os_test
    /bin/bash

    os.path.basename(path) 返回当前目录的名字或文件名,结果是path的最后一个斜杠后的字符串。

    os.path.commonpath([path1, path2]) 返回两个路径path1和path2的共同路径中最长的路径。如果有父子目录的关系,则返回父目录。这里传入的参数是一个列表,也就是说,如果比较的不只两个路径,而是多个,只要将路径加到列表中,也可以完成比较。

    os.path.dirname(path) 返回文件夹或文件所在的路径,结果是path最后一个斜杠前的字符串,这与basename()刚好相反。不过这里需要注意,如果传入的路径是一个不存在的路径,也会返回结果,因为这个方法其实只是对传入的路径字符串进行截取,并不判断系统中是否有此路径。所以在传值时,要保证传入的是一个正确的路径。

    os.path.exists(path) 返回系统中是否真正存在路径path。

    os.path.lexists(path) 结果与exists()相同。

    os.path.expanduser(path) 传入的path以~开头, 该方法会自动将~替换成当前用户的用户目录,如:/home/python。这里的用户是当前用户,如果换了用户,则用户目录也跟随改变。使用这个方法也需要注意,传入不存在的路径,方法不能识别,因为这个方法只是对字符~进行替换,并不判断系统中是否有此路径。所以传值时,要保证传入的是一个正确的路径,刚好,可以使用exists()来判断。

    os.path.expandvars(path) 传入的path中包含了系统的环境变量,格式为 ${name} ,该方法会自动将环境变量替换成指向的路径。如果是不存的环境变量,则返回的是原样的字符串。同样,此方法也不能判断路径的真实性,我们在传入路径和环境变量时,要保证传入的路径和环境变量正确。获取系统有哪些环境变量可以在终端使用env命令或export命令查看。

    三、os.path对路径或文件的判断

    # 返回路径是否为绝对路径(可能会有问题)
    print(os.path.isabs('Desktop/python_demo/os_test'))
    # 返回是不是文件
    print(os.path.isfile('Desktop/python_demo/os_test'))
    print(os.path.isfile('./os_path_demo.py'))
    # 返回是不是目录
    print(os.path.isdir('.'))
    print(os.path.isdir('./os_path_demo.py'))
    # 判断是不是链接
    print(os.path.islink('./os_path_demo.py'))
    # 判断是不是挂载点 df -a
    print(os.path.ismount('/dev'))

    运行结果:

    False
    False
    True
    True
    False
    False
    True

    os.path.isabs(path) 返回path是不是绝对路径。这个方法只是判断path的开头的是不是以斜杠开头,没有判断path是不是真的存在,所以传入path时要保证正确。

    os.path.isfile(path) 返回path是不是文件,如果path的结束是一个文件,则返回True,否则返回False。

    os.path.isdir(path) 返回path是不是路径,与isfile()相反。

    os.path.islink(path) 返回path是不是链接,如果path的结束是一个链接,则返回True,否则返回False。

    os.path.ismount(path) 返回path是不是挂载点,如果path是一个挂载点,则返回True,否则返回False。查看当前系统的挂载点可以使用 df -a 命令查看。

    四、os.path拼接或拆分路径

    # 把目录和文件名合成一个路径
    print(os.path.join('Desktop/python_demo/os_test', 'os_path_demo.py'))
    # 把路径切割成目录和文件名
    print(os.path.split('/home/python/Desktop/python_demo/os_test/os_path_demo.py'))
    # 返回驱动器名和路径组成的元组
    print(os.path.splitdrive('/home/python/Desktop/python_demo/os_test/os_path_demo.py'))
    # 返回路径名和扩展名(文件后缀)的元组
    print(os.path.splitext('/home/python/Desktop/python_demo/os_test/os_path_demo.py'))

    运行结果:

    Desktop/python_demo/os_test/os_path_demo.py
    ('/home/python/Desktop/python_demo/os_test', 'os_path_demo.py')
    ('', '/home/python/Desktop/python_demo/os_test/os_path_demo.py')
    ('/home/python/Desktop/python_demo/os_test/os_path_demo', '.py')

    os.path.join(path, file) 返回目路径的真实性。录和文件名拼接后的路径。这里只是做拼接,没有判断路径是否真的存在,所以传入参数时要注意

    os.path.split(path) 与join()相反,将path切分成目录和文件名,结果是一个元组。

    os.path.splitdrive(path) 返回驱动器名和路径名,结果是一个元组。

    os.path.splittext(path) 返回文件名和文件后缀名,结果是一个元组。

    五、os.path返回文件的访问时间和大小

    # 返回最近访问时间
    print(os.path.getatime('./os_path_demo.py'))
    print(os.path.getmtime('./os_path_demo.py'))
    print(os.path.getctime('./os_path_demo.py'))
    # 返回文件的大小
    print(os.path.getsize('./os_path_demo.py'))

    运行结果:

    1565794870.657664
    1565794870.5253758
    1565794870.5253758
    3176

    os.path.getatime(file) 返回文件的最近访问时间戳。

    os.path.getmtime(file) 返回文件的最近修改时间戳。

    os.path.getctime(file) 返回文件的创建时间戳。

    os.path.getsize(file) 返回文件的大小,如果文件不存在,会报错。

    六、os.path比较两个路径或文件是否相同

    # 判断目录或文件是否相同
    print(os.path.samefile('.', '/home/python/Desktop/python_demo/os_test'))
    print(os.path.samefile('os_path_demo.py', '/home/python/Desktop/python_demo/os_test/os_path_demo.py'))
    fd = os.open('os_path_demo.py', os.O_RDONLY)
    fd2 = os.open('os_path_demo.py', os.O_RDONLY)
    print(fd)
    print(fd2)
    # 判断两个文件描述符是否指向同一个文件
    print(os.path.sameopenfile(3, 4))
    stat = os.stat('os_path_demo.py')
    stat2 = os.lstat('os_path_demo.py')
    print(stat)
    print(stat2)
    # 判断两个star是否指向同一个文件
    print(os.path.samestat(stat, stat2))

    运行结果:

    True
    True
    3
    4
    True
    os.stat_result(st_mode=33204, st_ino=656046, st_dev=2049, st_nlink=1, st_uid=1000, st_gid=1000, st_size=3157, st_atime=1565711348, st_mtime=1565711348, st_ctime=1565711348)
    os.stat_result(st_mode=33204, st_ino=656046, st_dev=2049, st_nlink=1, st_uid=1000, st_gid=1000, st_size=3157, st_atime=1565711348, st_mtime=1565711348, st_ctime=1565711348)
    True

    os.path.samefile(path1, path2) 判断两个目录或文件是不是同一个目录或文件。

    os.path.sameopenfile(fd1, fd2) 判断文件描述符fd1和fd2是不是指向同一个文件。

    os.path.samestat(stat1, stat2) 判断文件状态stat1和stat2是不是同一个文件的状态信息。

     

     

     

    展开全文
  • path模块包含一系列处理和转换文件路径的工具集,通过 require(‘path’) 可用来访问这个模块。本文将详细介绍path模块 路径组成 【path.dirname(p)】 返回路径p所在的目录 var path = require('path'); console....
  • python os模块 以及 os.path模块 常用命令

    *************************os模块********************************************************

    os.getcwd()                   #获取当前工作目录,即当前python脚本工作的目录路径
    os.chdir("dirname")        # 改变当前脚本工作目录;相当于shell下cd
    os.curdir                   #返回当前目录: ('.')
    os.pardir                   #获取当前目录的父目录字符串名:('..')
    os.makedirs('dir1/dir2')    #可生成多层递归目录
    os.removedirs('dirname1')   #若目录为空,则删除,并递归到上一级目录,如若也为空,删除,依此类推
    os.mkdir('dirname')         #生成单级目录;相当于shell中mkdir dirname
    os.rmdir('dirname')        # 删除单级空目录,若目录不为空则无法删除,报错;相当于shell中rmdir dirname
    os.listdir('dirname')       #列出指定目录下的所有文件和子目录,包括隐藏文件,并以列表方式打印
    os.remove()                 #删除一个文件
    os.rename("oldname","new")   #重命名文件/目录
    os.stat('path/filename')    #获取文件/目录信息
    os.sep                      #操作系统特定的路径分隔符,win下为"\\",Linux下为"/"
    os.linesep                 #当前平台使用的行终止符,win下为"\t\n",Linux下为"\n"
    os.pathsep                 #用于分割文件路径的字符串
    os.name                     #字符串指示当前使用平台。win->'nt'; Linux->'posix'
    os.system("bash command")   #运行shell命令,直接显示
    os.environ                  #获取系统环境变量


    *************************os.path模块***************************************************

    os.path.abspath(path) #返回绝对路径

    os.path.basename(path) #返回文件名
    os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。
    os.path.dirname(path) #返回文件路径
    os.path.exists(path)  #路径存在则返回True,路径损坏返回False
    os.path.lexists  #路径存在则返回True,路径损坏也返回True
    os.path.expanduser(path)  #把path中包含的"~"和"~user"转换成用户目录
    os.path.expandvars(path)  #根据环境变量的值替换path中包含的”$name”和”${name}”
    os.path.getatime(path)  #返回最后一次进入此path的时间。
    os.path.getmtime(path)  #返回在此path下最后一次修改的时间。
    os.path.getctime(path)  #返回path的大小
    os.path.getsize(path)  #返回文件大小,如果文件不存在就返回错误
    os.path.isabs(path)  #判断是否为绝对路径
    os.path.isfile(path)  #判断路径是否为文件
    os.path.isdir(path)  #判断路径是否为目录
    os.path.islink(path)  #判断路径是否为链接
    os.path.ismount(path)  #判断路径是否为挂载点()
    os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径
    os.path.normcase(path)  #转换path的大小写和斜杠
    os.path.normpath(path)  #规范path字符串形式
    os.path.realpath(path)  #返回path的真实路径
    os.path.relpath(path[, start])  #从start开始计算相对路径
    os.path.samefile(path1, path2)  #判断目录或文件是否相同
    os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件
    os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件
    os.path.split(path)  #把路径分割成dirname和basename,返回一个元组
    os.path.splitdrive(path)   #一般用在windows下,返回驱动器名和路径组成的元组
    os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组
    os.path.splitunc(path)  #把路径分割为加载点与文件
    os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有
                                                   #3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有
                                                   #文件名,args则为walk的第三个参数
    os.path.supports_unicode_filenames  #设置是否支持unicode路径名
    展开全文
  • 关于Node.js中path模块的resolve()和join()方法的比较,对照着总结看例子差不多以后在写模块的时候思路就能很清晰了 resolve 作用:path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。 语法:path.resolve...
  • 本篇文章主要介绍了深入理解node.js之path模块,详细介绍了path模块的用法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • node.js中fs模块+path模块

    千次阅读 2018-08-16 12:20:59
    文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以通过调用 require("fs") 来获取该模块。文件系统模块中的所有方法均有异步和同步版本。 文件系统模块中的异步方法需要一个完成时的回...

    一、概述:

    文件系统模块是一个简单包装的标准 POSIX 文件 I/O 操作方法集。可以通过调用 require("fs") 来获取该模块。文件系统模块中的所有方法均有异步和同步版本。

    1. 文件系统模块中的异步方法需要一个完成时的回调函数作为最后一个传入形参。
    2. 回调函数的构成由调用的异步方法所决定,通常情况下回调函数的第一个形参为返回的错误信息。
    3. 如果异步操作执行正确并返回,该错误形参则为null或者undefined。如果使用的是同步版本的操作方法,一旦出现错误,会以通常的抛出错误的形式返回错误。
    4. 可以用try和catch等语句来拦截错误并使程序继续进行。

    二、文件操作说明

    1、文件完整的读写

    同步读取文件:如果同步读取文件失败,则需要使用try...catch 捕获该错误。

    const fs = require('fs')
    
    var data = fs.readFileSync('文件名称, 'utf-8')
    try{
        var data = fs.readFileSync('文件名', 'utf-8')
    }catch(err){
        console.log(error)
    }

    异步读取文件

    
    var fs = require('fs');//引入fs模块
    fs.readFile('文件名称(有路径加上路径)', 'utf-8', function (err, data) {
        if (err) {
            console.log(err);
        } else {
            console.log(data);
        }
    });

    写文件

    以下为异步模式下写入文件的语法格式:(如果文件存在,该方法写入的内容会覆盖旧的文件内容)

    fs.writeFile(filename, data[, options], callback)

    参数使用说明如下:

    • path - 文件路径。

    • data - 要写入文件的数据,可以是 String(字符串) 或 Buffer(流) 对象。

    • options - 该参数是一个对象,包含 {encoding, mode, flag}。默认编码为 utf8, 模式为 0666 , flag 为 'w'

    • callback - 回调函数,回调函数只包含错误信息参数(err),在写入失败时返回。

    const fs = require(''fs)
    
    fs.writeFile('被写入的文件名', data, function(err){
        if(err){
            console.log(err)
        }else{
            console.log('ok')
        }
    })

    2、从指定位置开始读取文件

    1)打开文件

    fs.open(path, flags[, mode], callback)

    参数使用说明如下:

    • path - 文件的路径。

    • flags - 文件打开的行为。具体值详见下文。

    • mode - 设置文件模式(权限),文件创建默认权限为 0666(可读,可写)。

    • callback - 回调函数,带有两个参数如:callback(err, fd)。

    flags 参数可以是以下值:

    Flag描述
    r以读取模式打开文件。如果文件不存在抛出异常。
    r+以读写模式打开文件。如果文件不存在抛出异常。
    rs以同步的方式读取文件。
    rs+以同步的方式读取和写入文件。
    w以写入模式打开文件,如果文件不存在则创建。
    wx类似 'w',但是如果文件路径存在,则文件写入失败。
    w+以读写模式打开文件,如果文件不存在则创建。
    wx+类似 'w+', 但是如果文件路径存在,则文件读写失败。
    a以追加模式打开文件,如果文件不存在则创建。
    ax类似 'a', 但是如果文件路径存在,则文件追加失败。
    a+以读取追加模式打开文件,如果文件不存在则创建。
    ax+类似 'a+', 但是如果文件路径存在,则文件读取追加失败。

    代码示例:

    var fs = require("fs");
    
    // 异步打开文件
    console.log("准备打开文件!");
    fs.open('test.txt', 'r+', function (err, fd) {
        if (err) {
            return console.error(err);
        }
        console.log("文件打开成功!");
        console.log("写入文件")
        fs.writeFile('test.txt', "写入12334545", function (err) {
            if (err) {
                return console.error(err)
            }
            console.log("写入成功")
        });
        console.log("读取文件")
        fs.readFile('test.txt', function (err,data) {
            if (err) {
                return console.error(err)
            }
            console.log("读取数据:" + data.toString())
            console.log("读取成功")
        });
        
    });

    输出:

    准备打开文件!
    文件打开成功!
    写入文件
    读取文件
    写入成功
    读取数据:写入12334545
    读取成功

    2)读取文件

    以下为异步模式下读取文件的语法格式:(该方法使用了文件描述符来读取文件)

    fs.read(fd, buffer, offset, length, position, callback)

    参数使用说明如下:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • buffer - 数据写入的缓冲区。

    • offset - 缓冲区写入的写入偏移量。

    • length - 要从文件中读取的字节数。

    • position - 文件读取的起始位置,如果 position 的值为 null,则会从当前文件指针的位置读取。

    • callback - 回调函数,有三个参数err, bytesRead, buffer,err 为错误信息, bytesRead 表示读取的字节数,buffer 为缓冲区对象。

    代码示例:

    var fs = require("fs");
    var buf = Buffer.alloc(1024);
    
    console.log("准备打开已存在的文件!");
    fs.open('test.txt', 'r+', function(err, fd) {
       if (err) {
           return console.error(err);
       }
       console.log("文件打开成功!");
       console.log("准备读取文件:");
       fs.read(fd, buf, 0, buf.length, 0, function(err, bytes){
          if (err){
             console.log(err);
          }
          console.log(bytes + "  字节被读取");
          
          // 仅输出读取的字节
          if(bytes > 0){
             console.log(buf.slice(0, bytes).toString());
          }
       });
    });

    输出:

    准备打开已存在的文件!
    文件打开成功!
    准备读取文件:
    14  字节被读取
    写入12334545

    3)写入文件

    fs.write(fd, buffer, offset, length[, position], callback) 

    • fs.write将buffer缓冲器内容写入fd文件描述符,

    • offset和length决定了将缓冲器中的哪部分写入文件。

    • position指明将数据写入文件从头部算起的偏移位置,若position为null,数据将从当前位置开始写入
    • callback 回调函数接受两个参数(err, written),其中written标识有多少字节的数据已经写入

    注意:写完后要关闭它

    var fs=require('fs');
    var buf= Buffer.from('I Like studying');
    console.log(buf)
    fs.open('test.txt','a',function(err,fd) {
        fs.write(fd,buf, 0,buf.length,0,function(err,written,buffer) {
            fs.write(fd,buf,0,buf.length,0,function(err,written,buffer) {
                if(err) console.log("写文件操作失败。");
                else console.log("写文件操作成功。");
                 fs.close(fd,function(){
                     console.log("关闭成功")
                 }); 
            }); 
        });
    })

    输出:

    Buffer(15) [73, 32, 76, 105, 107, 101, 32, 115, …]
    写文件操作成功。
    关闭成功

    同级的test.txt文件被写入

    I Like studyingI Like studying

    4)关闭文件

    以下为异步模式下关闭文件的语法格式:(该方法使用了文件描述符来读取文件)

    fs.close(fd, callback)

    参数使用说明如下:

    • fd - 通过 fs.open() 方法返回的文件描述符。

    • callback - 回调函数,没有参数。

    代码示例:

    var fs = require("fs");
    var buf = Buffer.alloc(1024);
    
    console.log("准备打开已存在的文件!");
    fs.open('test.txt', 'r+', function (err, fd) {
        if (err) {
            return console.error(err);
        }
        console.log("文件打开成功!");
        console.log("准备读取文件:");
        fs.read(fd, buf, 0, buf.length, 0, function (err, bytes) {
            if (err) {
                console.log(err);
            }
            console.log(bytes + "  字节被读取");
    
            // 仅输出读取的字节
            if (bytes > 0) {
                console.log(buf.slice(0, bytes).toString());
            }
            // 关闭文件
            fs.close(fd, function (err) {
                if (err) {
                    console.log(err);
                }
                console.log("文件关闭成功");
            });
        });
    });

    输出:

    准备打开已存在的文件!
    文件打开成功!
    准备读取文件:
    14  字节被读取
    写入12334545
    文件关闭成功

    三、目录的操作

    1)创建目录

    var fs = require('fs'); // 引入fs模块
    
    // 创建 newdir 目录
    fs.mkdir('目录名和路径', function(err) {
       if (err) {
           throw err;
       }
       console.log('make dir success.');
    })

    2)读取目录

    var fs = require('fs'); // 引入fs模块
    
    fs.readdir('目录名和路径', function(err, files) {
       if (err) {
           throw err;
       }
       // files是一个数组,每个元素是此目录下的文件或文件夹的名称
       console.log(files);
    })

    四、Fs与Stream之间的联系

    通常简单的读取文件时可以用readFile,其工作方式是将文件读取到内存。但是当内存较大时这样做就会浪费很多的内存,因为用户需要等到整个文件缓存到内存才能接受的文件数据,这样导致用户体验相当不好。

    fs.readFile("文件名称","utf-8", function(err, data){})

    因为 http.createServer(function(req,res){})中的req,res两个参数都是流所以可将上述代码改成如下代码,即可解决上述问题

    fs.createReadStream(__dirname + '大文件名称').pipe(res) ;

    五、path模块

    该模块用于处理和转换文件路径的实用程序。几乎所有这些方法只支持字符串转换。和所有的模块使用方法一样,再使用前需要先将其引用进来require('path'),再对其进行相应地属性操作。

    1.path.dirname(p)

    获取指定路径中目录名,如果当前为目录,则返回上一级目录

    
    var path = require("path")
     
    var myPath = path.dirname(__dirname + '/lib/lib.js');
    console.log(myPath);//C:\Users\99781\Desktop\test/lib

    2.path.basename(p,[ext])

    获取路径中文件名,后缀是可选的,如果加,请使用'.ext'方式来匹配,则返回值中不包括后缀名;

    var path=require('path');
    
    var myPath = path.basename(__dirname + '/lib/lib.js', '.js');
    console.log(myPath);//lib

    3.获取绝对路径path.resolve(path1, [path2]..[pathn])

    var path = require("path")
    var myPath = path.resolve('path1', 'path2', 'a/b\\c/');
    console.log(myPath);//C:\Users\99781\Desktop\test\path1\path2\a\b\c

    4.获取相对路径path.relative(from, to)

    from 当前路径,并且方法返回值是基于from指定到to的相对路径
    to 到哪路径

    console.log(path.relative("1.js","./lib"));//..\lib

    5、path.join([...paths])

    将给定的路径拼接起来,如果给定的路径长度为零,则返回”.“,表示当前的目录

    var path = require('path');
    // 输出 a\b\c
    console.log(path.join('a', 'b', 'c', 'd',".."))
    // 输出 a\b\c\d
    console.log(path.join('a', 'b', 'c', 'd'))

    6、path.parse(path)

    path是一个字符串类型

    path.parse() 方法返回一个对象,对象的属性表示 path 的元素。 尾部文件分隔符会被忽略,会返回以下属性:

    var path = require('path');
    console.log(path.parse("https://www.csdn.net/"));
    // 输出
    //Object {root: "", dir: "https:/", base: "www.csdn.net", ext: ".net", name: "www.csdn"}

    7、path.format(pathObject)

    path.format() 方法会从一个对象返回一个路径字符串。 与 path.parse() 相反。

    var path = require('path');
    console.log(path.parse("https://www.csdn.net/"));
    // 输出{root: "", dir: "https:/", base: "www.csdn.net", ext: ".net", name: "www.csdn"}
    console.log(path.format({root: "", dir: "https:/", base: "www.csdn.net", ext: ".net", name: "www.csdn"}))
    //输出https:/\www.csdn.net

    8、Windows 与 POSIX

    path 模块的默认操作会根据 Node.js 应用程序运行的操作系统的不同而变化。 比如,当运行在 Windows 操作系统上时,path 模块会认为使用的是 Windows 风格的路径。

    例如,对 Windows 文件路径 C:\temp\myfile.html 使用 path.basename() 函数,运行在 POSIX 上与运行在 Windows 上会产生不同的结果:

    var path = require('path');
    var obj = path.basename('C:\\temp\\myfile.html');
    console.log(obj)//windows上输出:myfile.html;POSIX上输出:'C:\\temp\\myfile.html'
    // 如果在POSIX上想输出windows上的形式可以在前面加上win32属性即可,如下:
    var obj2 = path.win32.basename('C:\\temp\\myfile.html');
    console.log(obj2)//会输出windows上形式的:myfile.html;

    9、目录结构:

     

    展开全文
  • os.path 模块主要用于获取文件的属性。这篇文章主要介绍了Python常用模块os.path——文件及路径操作,需要的朋友可以参考下
  • python os.path模块用法

    千次阅读 2018-09-02 10:08:44
    os.path模块主要用于文件的属性获取 os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path....

    os.path模块主要用于文件的属性获取

    os.path.abspath(path) #返回绝对路径

    os.path.basename(path) #返回文件名

    os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。

    os.path.dirname(path) #返回文件路径

    os.path.exists(path)  #路径存在则返回True,路径损坏返回False

    os.path.lexists  #路径存在则返回True,路径损坏也返回True

    os.path.expanduser(path)  #把path中包含的"~"和"~user"转换成用户目录

    os.path.expandvars(path)  #根据环境变量的值替换path中包含的”$name”和”${name}”

    os.path.getatime(path)  #返回最后一次进入此path的时间。

    os.path.getmtime(path)  #返回在此path下最后一次修改的时间。

    os.path.getctime(path)  #返回path的大小

    os.path.getsize(path)  #返回文件大小,如果文件不存在就返回错误

    os.path.isabs(path)  #判断是否为绝对路径

    os.path.isfile(path)  #判断路径是否为文件

    os.path.isdir(path)  #判断路径是否为目录

    os.path.islink(path)  #判断路径是否为链接

    os.path.ismount(path)  #判断路径是否为挂载点()

    os.path.join(path1[, path2[, ...]])  #把目录和文件名合成一个路径

    os.path.normcase(path)  #转换path的大小写和斜杠

    os.path.normpath(path)  #规范path字符串形式

    os.path.realpath(path)  #返回path的真实路径

    os.path.relpath(path[, start])  #从start开始计算相对路径

    os.path.samefile(path1, path2)  #判断目录或文件是否相同

    os.path.sameopenfile(fp1, fp2)  #判断fp1和fp2是否指向同一文件

    os.path.samestat(stat1, stat2)  #判断stat tuple stat1和stat2是否指向同一个文件

    os.path.split(path)  #把路径分割成dirname和basename,返回一个元组

    os.path.splitdrive(path)   #一般用在windows下,返回驱动器名和路径组成的元组

    os.path.splitext(path)  #分割路径,返回路径名和文件扩展名的元组

    os.path.splitunc(path)  #把路径分割为加载点与文件

    os.path.walk(path, visit, arg)  #遍历path,进入每个目录都调用visit函数,visit函数必须有3个参数(arg, dirname, names),dirname表示当前目录的目录名,names代表当前目录下的所有文件名,args则为walk的第三个参数

    os.path.supports_unicode_filenames  #设置是否支持unicode路径名

    展开全文
  • nodejs,path模块的__dirname 和 __filename

    千次阅读 2019-01-26 16:18:57
    nodejs ——path模块的__dirname 和 __filename 我们在使用nodejs,可能需要对 node_modules 开放一些目录,fs 取的是绝对路径,而我们在不同的环境下,node_modules 可能存在于 不同的 根目录中,这个时候我们就要...
  • Node.js使用path模块处理文件路径

    千次阅读 2016-12-11 14:44:45
    首先需要引入path模块var path = require('path'); 1.文件路径处理:path.normalize(p)。path模块中的normalize()方法用来规范化路径字符串。可用于处理路径中的”//”、”..”、”.”等字符。例如: var path = ...
  • python中os.path以及sys.path模块简介

    千次阅读 2017-10-31 16:25:10
    1、os.path.dirname(file) #指的是 当前文件所在目录,即settings.py在哪个文件夹里。 用print os.path.dirname(file) #输出结果: D:\MyPython\LearnDJ\src\LearnDJ\book 2、os.path.abspath(file) #指的是 当前...
  • 文章目录系统参考sys.path - 模块搜索路径用户站点目录(user site directory)安装包到用户站点目录第三方站点目录site.py介绍python启动选项 系统参考 [tony@tony-controller bin]$ cat /etc/redhat-release CentOS ...
  • var path = require(“path”) path.resolve(’./’, ‘…/123.txt’); // '…/123.txt’为相对路径 返回值为绝对路径
  • Node.js path模块,获取文件后缀名

    千次阅读 2019-01-03 11:13:36
    //path模块 var path=require('path'); /*nodejs自带的模块*/ var extname=path.extname("123.html"); //获取文件的后缀名   console.log(extname);...
  • 关于Node.js中path模块的resolve()和join()方法的比较,对照着总结看例子差不多以后在写模块的时候思路就能很清晰了 resolve 作用:path.resolve() 该方法将一些的 路径/路径段 解析为绝对路径。 语法:path.resolve...
  • // node内置模块。 // path.join() 拼接路径 var fullPath = path.join(__dirname,'aa.txt'); // __dirname是获取当前文件绝对路径的全局对象。 console.log(fullPath); // C:\Users\zhangsan\Web
  • require('path')模块模块包含用于处理和转换文件路径的实用程序。几乎所有这些方法只执行字符串转换。没有协商文件系统以检查路径是否有效。 一、路径格式化、反格式化 1.path.parse(pathString); 将路径...
  • python的sys.path模块路径添加

    万次阅读 2018-07-05 18:36:12
    对于添加一个文件的路径我用的第一个方法就是sys.path.append()博主比较懒,就直接截图了啊对于上级文件路径和再上一级的路径可以直接添加“..”,这样到时候导入模块的时候程序能在文件的上级目录直接去查找自己写...
  • 上传文件中,经常要获取上传文件的后缀名...我们可以通过node的核心包 path 模块 有一个 extname 方法进行快速获取后缀名 const path=require('path'); console.log(path.extname('index.html')); // 输出 .html ...
  • 转载自:http://blog.csdn.net/JOJOY_tester/article/details/54575264 https://www.cnblogs.com/wuxie1989/p/5623435.html记录下:python 的 sys.path.append()当我们导入一个模块时:import xxx,默认情况下...
  • python os.path模块

    千次阅读 2018-09-25 16:39:54
    os.path.abspath(path) #返回绝对路径 os.path.basename(path) #返回文件名 os.path.commonprefix(list) #返回list(多个路径)中,所有path共有的最长的路径。 os.path.dirname(path) #返回文件...
  • 首先是os模块: 要先明确两个表示:‘.’表示的是当前目录,‘..’表示的是上一级目录(如果现在有点乱的话,下面会有具体的使用,请往下看。。) getcwd():返回当前的工作目录: import os os.getcwd() #输出...
  • nodejs path模块路径智能合并

    千次阅读 2018-10-24 21:30:15
    nodejs中内置了一个叫做path的模块,里面提供了resolve( )的函数,可以智能合并__...1、引入path模块  var path=require( ‘ path ’ ) 2、path.resolve( __dirname , ' ../images/default.png ' )  
  • 第一部分python3中,os.path模块下常用的用法总结abspath返回一个目录的绝对路径 Return an absolute path.>>> os.path.abspath("/etc/sysconfig/selinux") '/etc/sysconfig/selinux...
  • 模块: 包含所有你定义的函数和变量的文件,后缀为.py。模块可以别的程序引入,以使用该模块中的函数等功能。 OS:Operating system 操作系统 iOS:iPhone OS 苹果手机操作系统 对于文件系统的访问,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 542,913
精华内容 217,165
关键字:

path模块