参考:操作文件和目录

NOTE:

1.Python内置的os模块可以直接调用操作系统提供的接口函数:

2.os.name 打印操作系统的名称:如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统。

3.要获取详细的系统信息,可以调用uname()函数。

4.在操作系统中定义的环境变量,全部保存在os.environ变量中。

5.要获取某个环境变量的值,可以调用os.environ.get('key'),从而获取名为'key'的环境变量的值。

#!/usr/bin/env python3

import os

def main():
print(os.name) # print the name of OS
print(os.uname) # print the details print(os.environ) # print the environment variables of OS
print(os.environ.get('PATH')) # get the PATH env variable if __name__ == '__main__':
main()
sh-3.2# ./osops1.py
posix
<built-in function uname>
environ({'TERM_PROGRAM_VERSION': '361.1', 'TERM_SESSION_ID': '42E41C0B-D800-486D-B449-C9A146E655C5', 'TERM_PROGRAM': 'Apple_Terminal', 'SHELL': '/bin/sh', 'XPC_FLAGS': '0x0', 'SHLVL': '2', '__CF_USER_TEXT_ENCODING': '0x0:25:52', 'XPC_SERVICE_NAME': '0', '__PYVENV_LAUNCHER__': '/Library/Frameworks/Python.framework/Versions/3.5/bin/python3', 'HOME': '/var/root', 'SSH_AUTH_SOCK': '/private/tmp/com.apple.launchd.vGQieaIu6n/Listeners', '_': './osops1.py', 'SECURITYSESSIONID': '186a7', 'PATH': '/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin', 'OLDPWD': '/Users/wasdns/Desktop/Python-Learning', 'Apple_PubSub_Socket_Render': '/private/tmp/com.apple.launchd.aeMG0w5FPh/Render', 'LOGNAME': 'wasdns', 'USER': 'wasdns', 'PWD': '/Users/wasdns/Desktop/Python-Learning/InOut', 'LANG': 'zh_CN.UTF-8', 'TERM': 'xterm-256color'})
/Library/Frameworks/Python.framework/Versions/3.5/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

6.文件及目录操作:

#!/usr/bin/env python3

import os

def main():
# 当前目录的绝对路径
print(os.path.abspath('.')) path = os.path.abspath('.') # 加入目录'Hi'
os.path.join(path, 'Hi') # mkdir
os.mkdir(path+'/Hi') # rm -rf
os.rmdir(path+'/Hi') if __name__ == '__main__':
main()

先是查看mkdir的效果,注释掉rmdir语句:

sh-3.2# ./osops2.py
/Users/wasdns/Desktop/Python-Learning/InOut
sh-3.2# ls
Hi data.txt easyio.py osops2.py
bytesio.py data2.txt osops1.py stringio.py

再取消注释:

sh-3.2# ./osops2.py
/Users/wasdns/Desktop/Python-Learning/InOut
sh-3.2# ls
bytesio.py data2.txt osops1.py stringio.py
data.txt easyio.py osops2.py

把两个路径合成一个时,可以通过os.path.join()函数。

比如上面的语句:

(path+'/Hi')

可以替换为:

os.path.join(path+'Hi')

7.同样要拆分路径时,可以通过os.path.split()函数,把一个路径拆分为两部分,后一部分是最后级别的目录或文件名。

os.path.split('[path]')

8.os.path.splitext() => 得到文件扩展名.

9.利用Python的特性来过滤文件:

	l = [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1]=='.py']
print(l)

做一个生成器,遍历一遍该目录下的元素,如果是文件类型及是.py文件则加入这个list。

2017.3.19

最新文章

  1. 通过openswan基于Azure平台搭建VPN server
  2. 关于[super dealloc]
  3. HDU 1848 Fibonacci again and again【SG函数】
  4. Ubuntu14.04安装Ubuntu Tweak
  5. android view :事件
  6. sqlserver字段类型
  7. css控制标题长度超出部分显示省略号
  8. django用户登录和注销
  9. scala 学习笔记(01) 函数定义、分支、循环、异常处理、递归
  10. Intellij IDEA 导入Eclipse或MyEclipse的Web项目
  11. 一个使用C#的TPL Dataflow Library的例子:分析文本文件中词频
  12. 关于Weblogic Server(介绍)
  13. POJ1182 食物链(并查集)
  14. 关于Ajax的type为post提交方式出现请求失效问题
  15. DJango 基础(6)
  16. 理解 Delphi 的类(十) - 深入方法[18] - 在接口区声明的方法都相当于提前声明了
  17. Maven项目打包,Jar包不更新的问题
  18. 关于jq ajax封装以及ajax上传Webapi
  19. OBD-II Protocol -- SAE J1850 VPW PWM
  20. ajax操作的链式写法

热门文章

  1. 【Android N 7.1.1】 ActivityManagerService 获取cpu状态
  2. IOS中使用轻量级数据库
  3. 【BZOJ4515】[Sdoi2016]游戏 树链剖分+线段树
  4. 树形DP求各点能走到的最远距离
  5. rac下asm管理的表空间-数据文件的重命名
  6. Oracle管理监控之Oracle数据库存储空间监控
  7. SSL默认端口时,用http://ip:port/访问出错(转)
  8. DevOps 创建pipline报错:The value specified for SourceVersion is not a valid commit ID
  9. js-template-art【二】语法
  10. 【开发者笔记】利用ab命令对接口进行压力测试