python3(三十七) filepath
- """ file path """
- __author__on__ = 'shaozhiqi 2019/9/23'
- # !/usr/bin/env python3
- # -*- coding: utf-8 -*-
- # os模块的基本功能
- import os
- print(os.name) # nt
- # 如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统
- # ----------------------------------------------------------------------------
- # 要获取详细的系统信息,可以调用uname()函数:
- # print(os.uname())
- # 注意uname()函数在Windows上不提供,也就是说,os模块的某些函数是跟操作系统相关的。
- # -------------------------------------------------------------------------------
- # 操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看:
- print(os.environ)
- # 获取某个环境变量的值,可以调用os.environ.get('key'):
- print(os.environ.get('PATH'))
- # D:\workPython\pythonLearning\Scripts;C:\Program Files (x86)\Java\jdk1.8.0_121\bin;C:\P
- # ---------------------------------------------------------------------------
- # 操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:
- # 查看当前目录的绝对路径:
- print(os.path.abspath('.')) # D:\workPython\pythonLearning\pyc\io
- # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
- os.path.join('D:/workPython/pythonLearning/pyc/io', 'testdir')
- # 然后创建一个目录:
- os.mkdir('D:/workPython/pythonLearning/pyc/io/testdir')
- # 删掉一个目录:
- # os.rmdir('D:/workPython/pythonLearning/pyc/io/testdir')
- # 把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符。在Linux/Unix/Mac下,os.path.join()返回这样的字符串:
- # part-1/part-2
- # 而Windows下会返回这样的字符串:
- # part-1\part-2
- # 同样的道理,要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:
- os.path.split('/Users/michael/testdir/file.txt')
- # ('/Users/michael/testdir', 'file.txt')
- # os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便:
- os.path.splitext('/path/to/file.txt')
- # ('/path/to/file', '.txt')
- # 这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。
- # 文件操作使用下面的函数。假定当前目录下有一个test.txt文件:
- # 对文件重命名:
- os.rename('test.txt', 'test.py')
- # 删掉文件:
- os.remove('test.py')
- # 但是复制文件的函数居然在os模块中不存在!原因是复制文件并非由操作系统提供的系统调用。理论上讲,我们通过上一节的读写文件可以完成文件复制,只不过要多写很多代码。
- # 幸运的是shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。
- # 最后看看如何利用Python的特性来过滤文件。比如我们要列出当前目录下的所有目录,只需要一行代码:
- [x for x in os.listdir('.') if os.path.isdir(x)]
- ['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
- # 要列出所有的.py文件,也只需一行代码:
- [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.py']
python3(三十七) filepath的更多相关文章
- 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索
第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...
- NeHe OpenGL教程 第三十七课:卡通映射
转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...
- Java进阶(三十七)java 自动装箱与拆箱
Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...
- Gradle 1.12用户指南翻译——第三十七章. OSGi 插件
本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...
- SQL注入之Sqli-labs系列第三十六关(基于宽字符逃逸GET注入)和三十七关(基于宽字节逃逸的POST注入)
0X1 查看源码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string ...
- “全栈2019”Java多线程第三十七章:如何让等待的线程无法被中断
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...
- 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS
第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...
- centos shell编程3【告警系统】 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七节课
centos shell编程3[告警系统] 没有服务器端和客户端的概念 main.sh mon.conf load.sh 502.sh mail.php mail.sh disk.sh 第三十七 ...
- “全栈2019”Java第三十七章:类与字段
难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...
- Linux常用三十七条指令
Linux常用三十七条指令 基础指令(11):ls,pwd,cd,mkdir,touch,cp.mv,rm,vim,>/>>/,cat 进阶指令(10):df,free,head,t ...
随机推荐
- EPX Studio产品功能介绍
EPX主要面向谁解决什么问题 EPX是什么? EPX基于计算机语言 EPX是利用基于Pascal的FastScript语言作为基础语言,在其中增加了许多函数与特性的一个扩展,将EPX组件本身融入到 ...
- 常用的 Git 命令与场景
Git 分布式版本控制系统 它拥有完整的版本控制功能,能够解决多人协作的问题 将自己的代码同步到 Github 上能够提升开发效率 git 会记录你每一次的版本修改操作 常用的 Git 操作 # 指定 ...
- Angular 从入坑到挖坑 - HTTP 请求概览
一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...
- Caused by: java.lang.IllegalArgumentException
Caused by: java.lang.IllegalArgumentException 是因为jdk较高而项目需要的是低版本的问题 1.将idea或idea里的语言级别调到适合自己项目的版本比如安 ...
- Selenium系列(七) - 切换iframe
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...
- 从SqlSessionFactoryBean的引用浅谈spring两种bean模式
mybatis是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory可以通过SqlSessionFactoryBuilder获得实例.使用mybatis-sp ...
- python之面向对象的成员,方法,属性,异常处理
一.类的私有成员 1. 类中的私有成员是什么? 私有:只有满足一部分条件的才能使用 私有类的属性 私有对象的属性 私有方法 正常状态 class B: school_name = '老男孩教育' de ...
- OpenCV-Python 立体图像的深度图 | 五十二
目标 在本节中, 我们将学习根据立体图像创建深度图. 基础 在上一节中,我们看到了对极约束和其他相关术语等基本概念.我们还看到,如果我们有两个场景相同的图像,则可以通过直观的方式从中获取深度信息.下面 ...
- BUAA_2020_OO_第一单元总结
三次作业,三次成长 第一次作业--幂函数求导总结 作业思路和心得 第一次作业的要求只有x的指数这样的幂函数加减组成表达式,对表达式进行求导,而且没有格式错误的检查,所以难度感觉还不是很高.不过由于我寒 ...
- Spring ioc xml 实例化bean 自己实现
public class DefClassPathXmlApplicationContext { private String xmlPath; public DefClassPathXmlAppli ...