在Linux系统下用Python写脚本,肯定不能避免各种与目录和文件夹有关的操作。为了以后方便查阅,简单地针对Python中与目录和文件夹有关的操作进行汇总。

  需要实现导入的模块为: import os

1. 得到当前工作目录,即当前Python脚本工作的目录路径:

  path=os.getcwd()

  在这里引用一个比较好的例子,来源于:牛皮糖的旅程

  我们将abc.py放入A文件夹。并且希望不管将A文件夹放在硬盘的哪个位置,都可以在A文件夹内生成一个新文件夹。且文件夹的名字根据时间自动生成。

import os
import time
folder = time.strftime(r"%Y-%m-%d_%H-%M-%S",time.localtime())
os.makedirs(r'%s/%s'%(os.getcwd(),folder))

2. 返回指定目录下的所有文件和目录名:

  os.listdir()

3. 判断一个路径(目录或文件)是否存在:

  b = os.path.exists("路径")——返回值b:True 或 False

4. 判断一个路径是否文件:

  b = os.path.isfile("路径")——返回值b:True 或 False

5. 判断一个路径是否目录:

  b = os.path.isdir("路径")——返回值b: True 或 False

6. 创建子目录:

  os.makedirs(path)——path是"要创建的子目录"

  调用有可能失败,可能的原因是:

  (1) path 已存在时(不管是文件还是文件夹);

  (2) 驱动器不存在;

  (3) 磁盘已满;

  (4)磁盘是只读的或没有写权限。

7. 删除子目录:

  os.rmdir(path)——path: "要删除的子目录"

  产生异常的可能原因:

  (1) path 不存在;

  (2) path 子目录中有文件或下级子目录;

  (3) 没有操作权限或只读。

  shutil.rmtree(path)——空目录、有内容的目录都可以删

8. 删除文件:

  os.remove(filename)——filename: "要删除的文件名"

  产生异常的可能原因:

  (1) filename 不存在;

  (2) 对filename文件,没有操作权限或只读。

9. 文件改名:

  os.name(oldfileName, newFilename)

  产生异常的原因:

  (1) oldfilename 旧文件名不存在;

  (2) newFilename 新文件已经存在时,需要先删除 newFilename 文件。

10. 获取文件大小:

  os.path.getsize(filename)

11. 将一个路径名分解为目录名和文件名两部分:

  fpath , fname = os.path.split("路径")

  例如:

    a, b = os.path.split( "c:\\123\\456\\test.txt" )

    print a

    print b

    显示:

    c:\123\456

    test.txt

12. 分解文件名的扩展名:

  fpathandname , fext = os.path.splitext("路径")

  例如:

    a, b = os.path.splitext( "c:\\123\\456\\test.txt" )

    print a

    print b

  显示:

    c:\123\456\test

    .txt

[Python] 目录和文件操作的更多相关文章

  1. python目录和文件操作

    一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法. 要操作目录,必须引入os模块 import os1.得到当前工作目录,即当前Python脚本工作的目录路径: os ...

  2. Python目录与文件操作

    一.判断一个路径是否存在 os.path.exists(path) 如果路径存在则返回True,否则返回False. import os import getpass # 获取当前系统用户名 user ...

  3. [python]目录及文件操作

    Python OS模块和shutil模块 获取路径 # 获取当前路径 pwd = os.getcwd() # 获取上级路径 a_pwd = os.path.abspath(os.path.dirnam ...

  4. python os&shutil 文件操作

    python os&shutil 文件操作 # os 模块 os.sep 可以取代操作系统特定的路径分隔符.windows下为 '\\' os.name 字符串指示你正在使用的平台.比如对于W ...

  5. python 历险记(三)— python 的常用文件操作

    目录 前言 文件 什么是文件? 如何在 python 中打开文件? python 文件对象有哪些属性? 如何读文件? read() readline() 如何写文件? 如何操作文件和目录? 强大的 o ...

  6. Python的高级文件操作(shutil模块)

    Python的高级文件操作(shutil模块) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 如果让我们用python的文件处理来进行文件拷贝,想必很多小伙伴的思路是:使用打开2个 ...

  7. python基础篇(文件操作)

    Python基础篇(文件操作) 一.初始文件操作 使用python来读写文件是非常简单的操作. 我们使用open()函数来打开一个文件, 获取到文件句柄. 然后通过文件句柄就可以进行各种各样的操作了. ...

  8. Linux 目录和文件操作

    Linux常用命令--目录和文件操作 [目录]删除.复制.移动 : 1.删除文件夹用:rmdir 文件夹名 但是rmdir不能删除非空的文件夹,那如何删除非空文件夹呢: 2.通常情况下,删除文件用:r ...

  9. Python 目录和文件基本操作

    今天在写一个小工具的过程中发现对目录和文件的基本操作不是很熟,特此把遇到的常用操作总结汇总下. 获取当前路径:os.getcwd() 目录操作:1.创建目录:os.mkdir('目录名')2.创建多级 ...

随机推荐

  1. 【小白的CFD之旅】14 实例反思

    小白将敲门实例认真做了三遍,终于可以脱离文档直接将实例从头到尾的完成了.不过在做实例的过程中,小白 还是发现了不少的问题. 这些问题包括: 实例是从导入网格文件开始的,这网格是什么鬼? 在Models ...

  2. 报表开发工具Finereport移动端app js接口列表【全】

    应用报表工具Finereport的开发人员会发现其移动端app 同样也推出了很多js接口,那这些接口到底有多少,其移动端又有哪些地方支持调用js,这些接口具体又该如何调用呢.根据我平时的开发经验,给大 ...

  3. Python版本2.7切3.5和3.5切2.7

    在Ubuntu上是自带Python2.7和3.5的 当你在终端输入Python的时候是显示Python2.7的 叫大家你怎么切换到Python3.5版本 1,查看是否存在python3.5终端输入 c ...

  4. struts2案例

    Struts 2是一个MVC框架,以WebWork框架的设计思想为核心,吸收了Struts 1的部分优点.Struts 2拥有更加广阔的前景,自身功能强大,还对其他框架下开发的程序提供很好的兼容性.下 ...

  5. linux常用指令

    整理下来的linux常用指令 mount [-t 文件系统] 设备文件名 挂载点挂载命令,一般用于在挂载ISO,或者其他比如U盘等设备时使用,[-t iso9660]为固定格式,可写可不写,非必写项. ...

  6. Fullscreen API 全屏显示网页

    可参考文档:http://blog.csdn.net/tywali/article/details/8623938 脚本代码 <script type="text/javascript ...

  7. IO(七)----转换流

    输入字节流的转换流:InputStreamReader 是字节流通向字符流的桥梁. 输出字节流的转换流:OutputStreamWriter  可以把输出字节流转换成输出字符流 .  是符流通向字节流 ...

  8. Caliburn.Micro学习笔记(五)----协同IResult

    Caliburn.Micro学习笔记目录 今天说一下协同IResult 看一下IResult接口 /// <summary> /// Allows custom code to execu ...

  9. WCF中的错误及解决办法

    一 .    HTTP 无法注册 URL http://+:8000/Users/.进程不具有此命名空间的访问权限今天按照网上的例子开始学习WCF程序,运行的时候却发现出如下问题:HTTP 无法注册 ...

  10. Android 线程池(转)

    new Thread的弊端及Java四种线程池的使用: 1.new Thread的弊端 ); } catch (InterruptedException e) { // TODO Auto-gener ...