在Python中可以很方便地做一些诸如浏览目录,创建文件夹,删除文件夹等等的操作。

对文件系统的访问大多通过os模块来实现,因为Python是多平台的,os模块只是前端,具体的实现还是由具体的系统来完成,这里还是主要说Windows系统。

利用os模块可以做创建文件,删除文件,重命名文件,返回文件信息等等。

os.path模块中则可以得到文件名,目录路径,或者文件是否存在,文件的大小等等信息。

要使用这个模块,就必须先把它导入。

  1. importos

可以用os.path模块中的isdir()函数来看看指定路径是不是存在,是不是一个目录。

  1. os.path.isdir('C:\Windows')

Python会返回True,表示目录存在。如果把上面的Windows改成不存在的目录比如Windows1,就会返回False

用os模块中的chdir()可以改变当前的目录,为下一步操作做准备。 改变目录后,可以用getcwd()函数得到现在的目录。 用listdir()函数可以得到目录中的所有文件和文件夹的名称,以列表的形式储存。

  1. os.chdir(dir)    # 括号内的dir为要改变的目录,例如os.chdir('C:\Windows')
  2. cwd=os.getcwd()   # 得到目前的目录名
  3. os.listdir(cwd)   # cwd为要显示的目录。

以下是一个具体的应用:

  1. >>> importos
  2. >>> os.path.isdir('c:\windows')
  3. True
  4. >>> os.chdir('c:\windows')
  5. >>> cwd=os.getcwd()
  6. >>> print cwd
  7. c:\windows
  8. >>> os.listdir(cwd)
  9. ['Acronis', 'addins', 'AppCompat', 'AppPatch', 'assembly', 'avastSS.scr', 'AxIns
  10. tSV', 'bfsvc.exe', 'BitLockerDiscoveryVolumeContents', 'BOCNET', 'Boot', 'bootst
  11. at.dat', 'Branding', 'CSC', 'Cursors', 'debug', 'diagnostics', 'DigitalLocker',
  12. 'DirectX.log', 'Downloaded Installations', 'Downloaded Program Files', 'DPINST.L
  13. OG', 'DtcInstall.log', 'ehome', 'en-US', 'Enterprise.xml', 'explorer.exe', 'Font
  14. s', 'fveupdate.exe', 'Globalization', 'Help', 'HelpPane.exe', 'hh.exe', 'idmfsa.
  15. dll', 'IE9_main.log', 'IME', 'inf', 'Installer', 'L2Schemas', 'LiveKernelReports
  16. ', 'Logs', 'Media', 'mib.bin', 'Microsoft.NET', 'ModemLogs', 'msdfmap.ini', 'not
  17. epad.exe', 'nsreg.dat', 'ntbtlog.txt', 'Offline Web Pages', 'Options', 'Panther'
  18. , 'PCHEALTH', 'Performance', 'PFRO.log', 'PLA', 'PolicyDefinitions', 'Prefetch',
  19. 'regedit.exe', 'Registration', 'RemotePackages', 'rescache', 'Resources', 'RtlE
  20. xUpd.dll', 'SchCache', 'schemas', 'security', 'ServiceProfiles', 'servicing', 'S
  21. etup', 'setupact.log', 'setuperr.log', 'ShellNew', 'SoftwareDistribution', 'Spee
  22. ch', 'splwow64.exe', 'Starter.xml', 'system', 'system.ini', 'System32', 'SysWOW6
  23. ', 'TAPI', 'Tasks', 'Temp', 'tracing', 'TSSysprep.log', 'twain.dll', 'twain_32'
  24. , 'twain_32.dll', 'twunk_16.exe', 'twunk_32.exe', 'Vss', 'Web', 'win.ini', 'Wind
  25. owsShell.Manifest', 'WindowsUpdate.log', 'winhlp32.exe', 'winsxs', 'WMSysPr9.prx
  26. ', 'write.exe', 'xinstaller.dll', 'xinstaller.exe', 'zh-CN']
  27. ]
  28. 'Acronis'

其他文件系统操作:

  1. os.mkdir('e:\\abcd')  # 之所以打两个斜杠,是因为要取消\a的转义。mkdir()在这里在e盘创建一个名字为abcd的文件夹。
  2. os.rmdir('e:\\abcd')  # rmdir()删除e盘名字为abcd的文件夹。
  3. os.remove(filename)   # 删除文件。
  4. os.stat(filename)     # 得到文件的信息。

os.path也有一些其他的操作,例如basename()去掉路径,返回文件名,dirname()去掉文件名,返回路径等等。到时候可以再查有关书籍。

Python 强大而易用的文件操作(转载)的更多相关文章

  1. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  2. python基础编程: 编码补充、文件操作、集合、函数参数、函数递归、二分查找、匿名函数与高阶函数

    目录: 编码的补充 文件操作 集合 函数的参数 函数的递归 匿名函数与高阶函数 二分查找示例 一.编码的补充: 在python程序中,首行一般为:#-*- coding:utf-8 -*-,就是告诉p ...

  3. python基础(内置函数+文件操作+lambda)

    一.内置函数 注:查看详细猛击这里 常用内置函数代码说明: # abs绝对值 # i = abs(-123) # print(i) #返回123,绝对值 # #all,循环参数,如果每个元素为真,那么 ...

  4. python 命令行参数,以及文件操作

    #demo.py #!/usr/bin/python import sys print sys.argv #python demo.py 11 22 33 44 55 ['demo.py', '11' ...

  5. python基础(六)dict字典和文件操作open

    字典dict 使用key来标注value的数据类型,key和value是一一对应的.在字典中key是唯一的,所以字典也是无序的. #定义一个字典 dict = { 'name' : 'sylar', ...

  6. Python【第三篇】文件操作、字符编码

    一.文件操作 文件操作分为三个步骤:文件打开.操作文件.关闭文件,但是,我们可以用with来管理文件操作,这样就不需要手动来关闭文件. 实现原理: import contextlib @context ...

  7. python学习笔记——(三)文件操作

    ·集合操作及其相应的操作符表示集合中没有插入,只有添加,因为毕竟无序 #!/usr/bin/env python # -*- coding:utf-8 -*- # Author:Vergil Zhan ...

  8. Python全栈开发之路 【第三篇】:Python基础之字符编码和文件操作

    本节内容 一.三元运算 三元运算又称三目运算,是对简单的条件语句的简写,如: 简单条件语句: if 条件成立: val = 1 else: val = 2 改成三元运算: val = 1 if 条件成 ...

  9. python基础之 编码进阶,文件操作和深浅copy

    1.编码的进阶 字符串在Python内部的表示是unicode编码,因此,在做编码转换时,通常需要以unicode作为中间编码.即先将其他编码的字符串解码(decode)成unicode,再从unic ...

随机推荐

  1. MyDetailedOS

    http://njumdl.sinaapp.com/ https://github.com/mudongliang

  2. QT5中如何自定义窗口部件

    提升法 eg.(定义一个新的QLable部件)1.定义一个类class Label : public base, public QLabel //可以支持多重继承2.在qt creator中打开ui编 ...

  3. Mailing API

    Mailing API Configuration Basic Usage Embedding Inline Attachments Mail & Local Development Work ...

  4. Android学习之Activity初步

    Activity作为Android的第一步接触的概念,在学习中将初步的认识总结下来,以便后续的回顾与反思. 1.在用Android Studio生成第一个helloworld应用程序运行在手机上时,发 ...

  5. SQL Server 内存管理

    windows memory:  Memory: Cache Bytes 是系统的working set, 也就是系统使用的物理内存数目. 可以观察Windows用了多少物理内存. 1. System ...

  6. [记录]Ubuntu下,使用Shell,简单替换有规律的文件名称

    因工作中需要将Flash转为Html5,并且要有动画效果,我将Flash的组件导出Png序列,然后将Png序列拼接成一张雪碧图(Sprite),名字为在生成雪碧图可以排序,需要改成数字名称. 而名字是 ...

  7. Android——控制UI界面

    一.使用XML布局文件控制UI界面 res\layout\activity_main.xml代码如下: <FrameLayout xmlns:android="http://schem ...

  8. glassfish 日志输出配置

    asadmin set-log-levels javax.enterprise.system.tools.deployment=WARNING

  9. 解决Asp.net中的Chart控件运行出现错误提示“ ChartImg.axd 执行子请求时出错”

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAABTkAAAJwCAIAAADN5fIdAAAgAElEQVR4nOzdfZAc1X3o/VNFlbcoJf

  10. 打包C#程序

    开源中国. 今天来使用VS2010对C#程序进行打包发布. 我们有一个C#程序.程序很简单,我们需要对它进行发布. Contents 步骤: 建立一个安装项目.我们得到了一个Setup1项目. 在应用 ...