参考:操作文件和目录

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

Python学习札记(四十三) IO 3的更多相关文章

  1. Python学习札记(四十一) IO 1

    参考:IO NOTE A.Pre 1.IO在计算机中指Input/Output,也就是输入和输出. 2.IO编程中,Stream(流)是一个很重要的概念,可以把流想象成一个水管,数据就是水管里的水,但 ...

  2. Python学习札记(四十二) IO 2

    参考:StringIO和BytesIO NOTE 1.StringIO: 顾名思义就是在内存中读写str. #!/usr/bin/env python from io import BytesIO a ...

  3. Python学习(四十三)—— Djago-admin管理工具

    一.admin组件使用 Django 提供了基于 web 的管理工具. Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTAL ...

  4. Python学习札记(四十) 面向对象编程 Object Oriented Program 11

    参考:使用元类 NOTE: type() 1.type()函数可以用于检查一个类或者变量的类型. #!/usr/bin/env python3 class Myclass(object): " ...

  5. Python学习札记(三十三) 面向对象编程 Object Oriented Program 4

    参考:继承和多态 NOTE 著名的开闭原则: 对扩展开放:允许新增Animal子类: 对修改封闭:不需要修改依赖Animal类型的Animal_func()等函数. 1.eg. #!/usr/bin/ ...

  6. Python学习札记(二十三) 函数式编程4 sorted

    参考:sorted NOTE 1.sorted,快速排序,时间复杂度O(nlogn)渐进最优. #!/usr/bin/env python3 L = [] for i in range(10): L. ...

  7. Python学习札记(四) Basic-1

    参考:Python基础 Basic 1.以#开头的是注释. 2.解释器把每一行都当做是一个语句,当语句以冒号:结尾时,缩进的语句视为代码块. 3.请使用4个空格作为缩进,慎用Tab(请把Tab设置为4 ...

  8. python学习第四十三天生成器和next()关联

    我们在用列表生成式的时候,如果有一百万的数据,内存显然不够用,这是python想要什么数据,就生产什么数据给你,就产生了生成器,下面简单讲述生成器用法 1,生成器的用法 a=([a*a for a i ...

  9. Python学习笔记(十三)

    Python学习笔记(十三): 模块 包 if name == main 软件目录结构规范 作业-ATM+购物商城程序 1. 模块 1. 模块导入方法 import 语句 import module1 ...

随机推荐

  1. OC开发_Storyboard——绘制和视图

    1.绘制 不要调用drawRect.调用setNeedsDisplay相当于告知系统视图需要重绘, 它会去调用drawRect,更新屏外缓冲器 2.UIBezierPath绘制图形,   设置图像op ...

  2. 设备加速传感器(accelerometer) ---- HTML5+

    模块:Accelerometer Accelerometer模块管理设备加速度传感器,用于获取设备加速度信息,包括x(屏幕水平方向).y(垂直屏幕水平方向).z(垂直屏幕平面方向)三个方向的加速度信息 ...

  3. github团队协作教程

    跟着笔者魔鬼般的步伐,我们一起来瞅瞅一个团队协作的任务如何进行版本管理吧~ 要跟上哦~ =============================================== 首先我们先来看下 ...

  4. AE导出mov

    最近安装了AE发现没法导出MOV格式的: 感觉应该是没有安装支持MOV的播放器之类的原因造成的:果断去下载一个quicktime 安装好之后重启发现真的有 mov 格式了

  5. Spring源码学习之IOC实现原理(二)-ApplicationContext

    一.Spring核心组件结构 总的来说Spring共有三个核心组件,分别为Core,Context,Bean.三大核心组件的协同工作主要表现在 :Bean是包装我们应用程序自定义对象Object的,O ...

  6. codeforces#505--A Doggo Recoloring

    A. Doggo Recoloring time limit per test 1 second memory limit per test 256 megabytes input standard ...

  7. A Benchmark Comparsion of Monocular Visual-Inertial Odometry Algorithms for Flying Robots论文笔记

    摘要: 本文主要比较单目VIO的算法在飞行机器人上运行的性能,测试使用统一数据集为EuRoC.其中评价指标为:姿态估计精度.每帧处理时间以及CPU和内存负载使用率,同时还有RMSE(运行轨迹与真实轨迹 ...

  8. django通用视图

    通用视图 1. 前言 回想一下,在Django中view层起到的作用是相当于controller的角色,在view中实施的 动作,一般是取得请求参数,再从model中得到数据,再通过数据创建模板,返回 ...

  9. 十六.MySQL存储过程

    1.创建一个没有参数的存储过程 CREATE PROCEDURE sp1() SELECT VERSION(); 调用存储过程:CALL sp1(); 2.带有IN参数的存储过程 CREATE PRO ...

  10. 每日算法之三十五:Wildcard Matching

    模式匹配的实现,'?'代表单一字符,'*'代表随意多的字符.写代码实现两个字符串是否匹配. Implement wildcard pattern matching with support for ' ...