`
iluoxuan
  • 浏览: 582169 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

文件目录和操作库

 
阅读更多

 

import os
import string
print os.path.abspath("test.txt")
dir = os.path.dirname(os.path.abspath("test.txt"))
print dir
print os.path.exists("test.txt")
print os.path.basename(os.path.abspath("test.txt"))
print os.path.join(dir,"test.txt")

 结果:

 

E:\mylearn\mypython\weibo\test.txt
E:\mylearn\mypython\weibo
True
test.txt
E:\mylearn\mypython\weibo\test.txt
 

os.path中的常用函数

2011年8月17日

os.path.abspath(relative_path)

返回绝对路径

abspath = normpath(join(os.getcwd(), relative_path))

Sample:

当前路径是 /home/justtest,则:

abspath('./code/test.py') => '/home/justtest/code/test.py

os.path.relpath(path[, start])

返回相对路径, start的默认值是 os.curdir

假设当前路径是 /home/justtest

relpath('/home/justtest/test.py') => 'test.py'
relpath('/home/anothertest/test.py', '/home/anothertest') => 'test.py'

os.path.basename(path)

返回文件名

basname(path) = split(path)[1]

basename('/home/justtest/test.py') =>'test.py'
basename('/home/justtest/') =>''

os.path.dirname(path)

返回目录名,不包含文件名。注意:返回的路径名不含最后的斜杠

dirname(path) = split(path)[0]

dirname('/home/justtest/test.py') =>/home/justtest'
dirname('/home/justtest/') =>'/home/justtest'

os.path.split(path)

将 path 分解成 (路径, 文件名)

split('/home/justtest/test.py') = ('/home/justtest', 'test.py')
split('/home/justtest/') = ('/home/justtest', '')

os.path.join(path1[, path2[, ...]])

合并多个路径

join('/home', 'justtest', 'test.py') => '/home/justtest/test.py'
join('/home/justtest', 'test.py') => '/home/justtest/test.py'

os.path.normpath(path)

将路径正规化:去除多余的分隔符,将 . 和 .. 变成真实路径,处理错误的斜杠

normpath('\home/justtest') => '\\home/justtest'
normpath('/home/./justtest') => '/home/justtest'
normpath('/home/../justtest') => '/justtest'

os.path.exists(path)

文件或路径是否存在并且有权限访问

os.path.isabs(path), isfile(path), isdir(path), islink(path)

isabs: 是否绝对路径

isfile: 是否文件

isdir: 是否路径

islink: 是否link

os.path.walk(path, callback, arg)

遍历路径,对路径中的每个文件调用callback函数

callback函数的原型如下:

callback(arg, path, files)
    @arg: walk函数的参数
    @path: 路径
    @files: 路径下的所有文件
分享到:
评论

相关推荐

    探索 C++ std::filesystem 库:文件与目录操作的强大利器

    详细阐述 std::filesystem 库的主要功能,包括文件和目录的路径处理、文件属性查询、文件和目录的创建与删除、文件的读写操作以及目录的遍历等。通过丰富的代码示例展示每个功能的具体用法和实际应用场景,分析该库...

    目录树支持库

    在开发过程中,尤其是在需要处理大量文件和目录的操作时,目录树支持库显得尤为重要。 在给定的压缩包文件"云外归鸟的目录树支持库静态版eDirTreefne"中,我们可以推测这可能是一个由名为"云外归鸟"的开发者或团队...

    二级目录文件系统模拟

    在计算机科学中,文件系统是操作系统用来组织、存储和检索文件的一种方法。...在完成这个项目后,我们可以更好地理解如何在程序中与文件系统进行交互,这对于任何涉及文件操作的软件开发都极其重要。

    易语言学习-磁盘文件操作支持库V1.1(静态版).zip

    6. **目录操作**:除了文件操作,支持库也可能包括对目录的操作,如`创建目录`、`删除目录`、`获取当前目录`等,便于管理文件夹结构。 7. **文件属性获取**:如获取文件大小、修改时间等,这些信息对于文件管理和...

    Qt删除一个目录下所有文件和文件夹

    删除文件和目录时,应检查操作是否成功,并处理可能出现的异常情况,如权限问题、文件正在被使用等。 6. **递归删除**: 如上所示,为了删除包含文件和子目录的目录,需要编写一个递归函数,逐层删除子目录中的...

    易语言学习-大鸟的目录树支持库--静态版(二次修正).zip

    目录树支持库在编程中扮演着重要角色,它帮助程序员更方便地管理文件系统中的目录结构,进行文件和目录的创建、读取、修改和删除等操作。 大鸟的目录树支持库可能包含了一系列的易语言模块或组件,这些模块提供了...

    易语言学习-大鸟的目录树支持库--静态版.zip

    这个库是针对易语言开发的一种扩展工具,它为易语言提供了处理文件目录结构的能力,对于进行文件管理、文件操作等自动化任务非常有用。 目录树支持库通常包含了一系列的函数或方法,使得开发者可以通过调用来遍历、...

    c++移动、复制文件,新建目录

    总结来说,C++通过`std::filesystem`库为我们提供了方便的接口来处理文件和目录。无论是移动文件、复制文件还是新建目录,都可以通过调用相应的函数并配合异常处理来实现。在实际项目中,根据具体需求,可能还需要...

    文件目录管理VC++源码

    1. **文件流(File Streams)**:C++标准库中的`fstream`库提供了`ifstream`(用于读取文件)、`ofstream`(用于写入文件)和`fstream`(用于读写文件)类,它们是进行文件操作的基础。 2. **文件路径处理**:C++...

    C++ Zlib库实现zip文件压缩解压(支持递归压缩)

    总的来说,`C++`结合`Zlib`库和`minizip`库,能够有效地处理`zip`文件的压缩和解压缩任务,特别是递归压缩功能,使得处理复杂目录结构变得更加便捷。在软件更新场景下,这种组合可以为用户提供高效、可靠的更新体验...

    HX711库文件

    "简单功能"可能是指库文件包含了基本的初始化、数据采集和校准等操作,适合初学者快速上手。同时,存在“说明文当”,意味着该压缩包中可能包含了一份使用指南或者API文档,帮助开发者理解如何正确使用这个库。 ...

    Java FTP 指定下载文件和上传文件到指定的服务器目录

    通过本文介绍的方法,您可以轻松实现Java应用程序中对FTP服务器的文件上传与下载操作,并能有效地指定文件上传和下载的目标目录。这对于企业级应用中的文件管理有着重要的作用。同时,在实际应用过程中还需注意安全...

    NetCDF 4.2.1库文件

    因此,你需要将`netcdf.dll`放在系统的PATH环境变量所包含的目录下,或者与你的可执行文件放在一起,以便系统能找到并加载这个库。 另一方面,`netcdf.lib`是静态或动态链接库的导入库文件,用于编译期间链接到你的...

    使用ZLIB库压缩解压源码(支持多级文件目录)

    5. **文件读写**:在读取和写入文件时,需要使用适当的I/O操作,例如`fopen()`、`fwrite()`和`fclose()`。同时,`StdAfx.cpp`和`StdAfx.h`通常包含预编译的头文件,以提高编译速度。 6. **压缩结束**:最后,调用`...

    Windows OpenCV编译后的库文件

    编译成功后,OpenCV的库文件会出现在指定的输出目录下,通常包括.lib静态链接库和.dll动态链接库。这些库文件是用于在Windows平台上链接OpenCV功能的关键。 8. **安装与使用**: 将生成的库文件复制到适当的位置...

    avilib文件读写库

    "avilib文件读写库"是一个专为处理AVI文件而设计的共享库,它提供了简洁的接口,使得开发者能更轻松地进行AVI文件的读取和写入操作。在编程领域,这样的库对于多媒体应用开发尤其重要,因为它简化了对复杂媒体文件...

    c++编写的文件目录监视程序

    C++标准库并不直接提供文件系统操作接口,但在C++17之后,引入了`<filesystem>`库,使得我们可以方便地进行文件和目录的操作。这个程序可能就利用了这一库来获取和监控目录信息。`std::filesystem::directory_...

    使用Win32 API 查找某个目录下的所有文件(包括子目录)

    在C++编程环境中,可以使用`#import`或`LoadLibrary`/`GetProcAddress`动态加载`kernel32.dll`库,因为大部分文件操作相关的API都在这个库中定义。通常,我们会使用`#pragma comment(lib, "kernel32.lib")`来链接...

    opengl库文件完整版

    .dll文件放到 C:\Windows\SysWOW64 (64位操作系统) C:\Windows\System32 (32位操作系统) .lib文件放到 C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib 具体目录以vs2010的安装位置为准。 vs2017 找到...

    VC++中文件读、写和其他相关操作汇总

    在VC++编程环境中,文件操作是至关重要的,无论是开发应用程序还是进行数据分析,都需要与文件进行交互。本篇文章将深入探讨如何在Visual C++ (VC++),特别是VS2008环境下,进行文件的读取、写入以及其他相关操作。...

Global site tag (gtag.js) - Google Analytics