在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令。Python标准库则允许我们从Python内部管理文件。相同的目的,我们有了两条途径。尽管在Python调用标准库的方式不如操作系统命令直接,但有它自己的优势。你可以利用Python语言,并发挥其他Python工具,形成组合的文件管理功能。Python or Shell? 这是留给用户的选择。本文中会尽量将两者相似的功能相对应。

本文基于linux文件管理背景知识

os包

os包包括各种各样的函数,以实现操作系统的许多功能。这个包非常庞杂。os包的一些命令就是用于文件管理。我们这里列出最常用的:

mkdir(path)

创建新目录,path为一个字符串,表示新目录的路径。相当于$mkdir命令

rmdir(path)

删除空的目录,path为一个字符串,表示想要删除的目录的路径。相当于$rmdir命令

listdir(path)

返回目录中所有文件。相当于$ls命令。

import os,os.path,time
if (os.path.exists("testdir")==False):
print "not exist,create"
os.mkdir("testdir")
time.sleep(2)
print os.listdir(".")

if(os.path.exists("1.txt")):
print "1.txt exist,rename"
os.rename("1.txt","2.txt")
os.chmod("1.txt","755")
os.remove("2.txt")

if os.path.exists(".\\testdir01"):
print "exist,and delete"
os.rmdir("testdir01")

 

remove(path)

删除path指向的文件。

rename(src, dst)

重命名文件,src和dst为两个路径,分别表示重命名之前和之后的路径。

chmod(path, mode)

改变path指向的文件的权限。相当于$chmod命令。

chown(path, uid, gid)

改变path所指向文件的拥有者和拥有组。相当于$chown命令。

stat(path)

查看path所指向文件的附加信息,相当于$ls -l命令。

symlink(src, dst)

为文件dst创建软链接,src为软链接文件的路径。相当于$ln -s命令。

getcwd()

查询当前工作路径 (cwd, current working directory),相当于$pwd命令。

比如说我们要新建目录new:

import os
os.mkdir('new')

shutil包

copy(src, dst)

复制文件,从src到dst。相当于$cp命令。

move(src, dst)

移动文件,从src到dst。相当于$mv命令。

比如我们想复制文件a.txt:

import shutil
shutil.copy('a.txt', 'b.txt')

想深入细节,请参照官方文档osshutil

结合本章以及之前的内容,我们把Python打造成一个文件管理的利器了。

总结

os包: rmdir, mkdir, listdir, remove, rename, chmod, chown, stat, symlink

shutil包: copy, move

Python -- 标准库 文件管理 (部分os包,shutil包)的更多相关文章

  1. Python标准库08 多线程与同步 (threading包)

    Python主要通过标准库中的threading包来实现多线程.在当今网络时代,每个服务器都会接收到大量的请求.服务器可以利用多线程的方式来处理这些请求,以提高对网络端口的读写效率.Python是一种 ...

  2. Python标准库12 数学与随机数 (math包,random包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们已经在Python运算中看到Python最基本的数学运算功能.此外,math包 ...

  3. python标准库介绍——1 os详解

    == os 模块 == ``os`` 模块为许多操作系统函数提供了统一的接口. 这个模块中的大部分函数通过对应平台相关模块实现, 比如 ``posix`` 和 ``nt. os`` 模块会在第一次导入 ...

  4. python标准库介绍——2 os.path模块详解

    == os.path 模块 == ``os.path`` 模块包含了各种处理长文件名(路径名)的函数. 先导入 (import) ``os`` 模块, 然后就可以以 ``os.path`` 访问该模块 ...

  5. python标准库00 学习准备

    Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...

  6. Python标准库的学习准备

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python标准库是Python强大的动力所在,我们已经在前文中有所介绍.由于标准 ...

  7. Python标准库04 文件管理 (部分os包,shutil包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令 ...

  8. Python标准库09 当前进程信息 (部分os包)

    原文:Python标准库09 当前进程信息 (部分os包) 作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 我们在Linux的概念 ...

  9. Python标准库07 信号 (signal包,部分os包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...

随机推荐

  1. corosync

    前提: )本配置共有两个测试节点,分别node1.magedu.com和node2.magedu.com,相的IP地址分别为172.: )集群服务为apache的httpd服务: )提供web服务的地 ...

  2. HDU 1171 Big Event in HDU (多重背包变形)

    Big Event in HDU Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  3. PWM DAC Low Pass Filtering

    [TI博客大赛][原创]LM3S811之基于PWM的DAC http://bbs.ednchina.com/BLOG_ARTICLE_3005301.HTM http://www.fpga4fun.c ...

  4. STN1170 Multiprotocol OBD to UART Interpreter

    http://www.obdsol.com/stn1170/ STN1170 supports the following protocols: all legislated OBD II proto ...

  5. Linux 静态库与动态库搜索路径设置详解

    转载:http://blog.chinaunix.net/uid-29025972-id-3855495.html 1. 连接和运行时库文件搜索路径的设置 库文件在连接(静态库和共享库)和运行(仅限于 ...

  6. linux上SVN解决冲突的办法

    转载:http://www.aixchina.net/club/thread-25902-1-1.html 这里,先说说冲突解决. 怎么会发生冲突呢? 两个人修改了不同文件?不会有冲突,他们不相关. ...

  7. jdbc分页

    分页是一个被讲到烂掉的话题,今天我再拾起来踹几脚吧 (Hibernate的分页做得很好很强大,用的人都知道 ,这个就不用再说了) 1.为什么要分页?    首先是数据量太大会影响查询和传输的性能,关键 ...

  8. C# 如何做类似微博和QQ的授权登录

    记录下吧,dotnet下有这个http://dotnetopenauth.net/开源的框架可以用来实现服务端和客户端的实现,具体的使用方法还真研究,第一次接触OAuth这个概念

  9. GitHub上如何删除repository仓库

    1.选择你要删除的仓库名称点击进入. 2.看右边竖向导航栏,选择最下面的settings选项. 3.拉到最下面,看有一个delete this repository的按钮. 4.点击按钮后,会有一个弹 ...

  10. 创建一个简单的windows服务,每间隔一定时间重复执行批处理文件

    创建一个windows服务项目,增加App.config <?xml version="1.0" encoding="utf-8" ?> <c ...