在python中执行和操作目录和文件的操作是通过内置的python OS模块封装的函数实现的。

首先导入模块,并查看操作系统的类型:

>>> import os
os.name # 操作系统类型
'nt'

nt,是Windows;posix是Linux或者unix

1、对目录和文件的操作。

>>> os.path#查看当前工作路径
<module 'ntpath' from 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python36-32\\lib\\ntpath.py'> >>> os.path.abspath('.')#查看当前工作的绝对路径
'C:\\Users\\Administrator\\Desktop\\enen\\python' >>> os.path.join('C:\\Users\\Administrator\\Desktop\\enen\\python','dede')#在当前目录下新建一个文件夹,并将文件路径显示出来
'C:\\Users\\Administrator\\Desktop\\enen\\python\\dede' >>> os.mkdir('C:\\Users\\Administrator\\Desktop\\enen\\python\\test')#创建一个目录 >>> os.rmdir('C:\\Users\\Administrator\\Desktop\\enen\\python\\test')#删除一个目录。
>>> #注意,Windows和Linux环境下路径表示有所差异

2、对目录文件路径拆分

>>> os.path.split('C:\\Users\\Administrator\\Desktop\\enen\\python\\test.txt') #对当前文件路径拆分
('C:\\Users\\Administrator\\Desktop\\enen\\python', 'test.txt')
>>> os.path.split('C:\\Users\\Administrator\\Desktop\\enen\\python\\te.txt')#对当前不存在的文件路径进行拆分
('C:\\Users\\Administrator\\Desktop\\enen\\python', 'te.txt')
>>>
>>> os.path.splitext('C:\\Users\\Administrator\\Desktop\\enen\\python\\test.txt')#使用splitext进行路径拆分
('C:\\Users\\Administrator\\Desktop\\enen\\python\\test', '.txt')

以上注意两点:a.合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作,例如演示代码所示。b.使用splitext()进行拆分可以直接得到文件的扩展名。

3、复制文件的函数在os模块中没有提供,可以使用shutil模块中的copyfile()函数进行操作。它是os模块的补充。有关shutil模块中函数的调用http://www.jb51.net/article/87984.htm

4、对当前目录文件进行的筛选:

>>> [x for x in os.listdir('.') if os.path.isdir(x)]#使用列表生成式,并使用if进行判断,os.listdir可以列出文件和目录,os.path.isdir()函数判断某一路径是否为目录。
['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
>>> [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']#筛选出扩展名是py的所有文件,语法使用很是精巧,对当前拆分的文件路径进行索引判断,返回py扩展名的文件。
['apis.py', 'config.py', 'models.py', 'pymonitor.py', 'test_db.py', 'urls.py', 'wsgiapp.py']

学习廖老师教程做的笔记。

最新文章

  1. 让我轻轻的告诉你AliSQLselect语句中in多少个合适
  2. UIControlEventTouch
  3. MariaDB远程连接配置
  4. PowerShell与CMD在路径解析上的一点不同
  5. Partran,Nastran和ANSYS的区别
  6. linux远程连接mysql数据库
  7. 2. hdfs
  8. Yii系列教程(三):集成Redis
  9. TC SRM 665 DIV2 A LuckyXor 暴力
  10. 【CF】283D Tennis Game
  11. Android自动测试之Monkey工具
  12. 关于对vector3及其衍生变量的理解
  13. 基于前后端分离的Nginx+Tomcat动静分离
  14. 机器学习之正则化【L1 &amp; L2】
  15. css给html添加效果
  16. Java反射机制小结和实际操作
  17. How to secure the ASP.NET_SessionId cookie? 设置ASP.NET_SessionId Secure=true
  18. Selenium+Eclipse+Python 环境搭建
  19. mysql中engine=innodb和engine=myisam的区别(转)
  20. Can&#39;t push you anymore...

热门文章

  1. 树莓派UPS-18650,添加时钟
  2. Scrapy爬取携程桂林问答
  3. python爬虫之解析库正则表达式
  4. 一个很NB的404页面
  5. Siki_Unity_3-6_UI框架 (基于UGUI)
  6. 【LeetCode算法题库】Day5:Roman to Integer &amp; Longest Common Prefix &amp; 3Sum
  7. kali vmtools 不能复制粘贴解决方法(绝对实用)
  8. Scrum Meeting 5 -2014.11.11
  9. 增加ubuntu的内存——设置Swap增加内存
  10. 作业一 031502140 博客地址yeze651521