1. """ file path """
  2. __author__on__ = 'shaozhiqi 2019/9/23'
  3.  
  4. # !/usr/bin/env python3
  5. # -*- coding: utf-8 -*-
  6.  
  7. # os模块的基本功能
  8. import os
  9.  
  10. print(os.name) # nt
  11. # 如果是posix,说明系统是Linux、Unix或Mac OS X,如果是nt,就是Windows系统
  12.  
  13. # ----------------------------------------------------------------------------
  14. # 要获取详细的系统信息,可以调用uname()函数:
  15. # print(os.uname())
  16. # 注意uname()函数在Windows上不提供,也就是说,os模块的某些函数是跟操作系统相关的。
  17.  
  18. # -------------------------------------------------------------------------------
  19. # 操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看:
  20. print(os.environ)
  21. # 获取某个环境变量的值,可以调用os.environ.get('key'):
  22. print(os.environ.get('PATH'))
  23. # D:\workPython\pythonLearning\Scripts;C:\Program Files (x86)\Java\jdk1.8.0_121\bin;C:\P
  24.  
  25. # ---------------------------------------------------------------------------
  26. # 操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:
  27. # 查看当前目录的绝对路径:
  28. print(os.path.abspath('.')) # D:\workPython\pythonLearning\pyc\io
  29. # 在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
  30. os.path.join('D:/workPython/pythonLearning/pyc/io', 'testdir')
  31. # 然后创建一个目录:
  32. os.mkdir('D:/workPython/pythonLearning/pyc/io/testdir')
  33. # 删掉一个目录:
  34. # os.rmdir('D:/workPython/pythonLearning/pyc/io/testdir')
  35. # 把两个路径合成一个时,不要直接拼字符串,而要通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符。在Linux/Unix/Mac下,os.path.join()返回这样的字符串:
  36. # part-1/part-2
  37. # 而Windows下会返回这样的字符串:
  38. # part-1\part-2
  39. # 同样的道理,要拆分路径时,也不要直接去拆字符串,而要通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名:
  40. os.path.split('/Users/michael/testdir/file.txt')
  41. # ('/Users/michael/testdir', 'file.txt')
  42. # os.path.splitext()可以直接让你得到文件扩展名,很多时候非常方便:
  43.  
  44. os.path.splitext('/path/to/file.txt')
  45. # ('/path/to/file', '.txt')
  46. # 这些合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。
  47.  
  48. # 文件操作使用下面的函数。假定当前目录下有一个test.txt文件:
  49. # 对文件重命名:
  50. os.rename('test.txt', 'test.py')
  51. # 删掉文件:
  52. os.remove('test.py')
  53. # 但是复制文件的函数居然在os模块中不存在!原因是复制文件并非由操作系统提供的系统调用。理论上讲,我们通过上一节的读写文件可以完成文件复制,只不过要多写很多代码。
  54. # 幸运的是shutil模块提供了copyfile()的函数,你还可以在shutil模块中找到很多实用函数,它们可以看做是os模块的补充。
  55. # 最后看看如何利用Python的特性来过滤文件。比如我们要列出当前目录下的所有目录,只需要一行代码:
  56. [x for x in os.listdir('.') if os.path.isdir(x)]
  57. ['.lein', '.local', '.m2', '.npm', '.ssh', '.Trash', '.vim', 'Applications', 'Desktop', ...]
  58. # 要列出所有的.py文件,也只需一行代码:
  59. [x for x in os.listdir('.') if os.path.isfile(x) and os.path.splitext(x)[1] == '.py']

python3(三十七) filepath的更多相关文章

  1. 程序员编程艺术第三十六~三十七章、搜索智能提示suggestion,附近点搜索

    第三十六~三十七章.搜索智能提示suggestion,附近地点搜索 作者:July.致谢:caopengcs.胡果果.时间:二零一三年九月七日. 题记 写博的近三年,整理了太多太多的笔试面试题,如微软 ...

  2. NeHe OpenGL教程 第三十七课:卡通映射

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  3. Java进阶(三十七)java 自动装箱与拆箱

    Java进阶(三十七)java 自动装箱与拆箱 前言 这个是jdk1.5以后才引入的新的内容.java语言规范中说道:在许多情况下包装与解包装是由编译器自行完成的(在这种情况下包装称为装箱,解包装称为 ...

  4. Gradle 1.12用户指南翻译——第三十七章. OSGi 插件

    本文由CSDN博客万一博主翻译,其他章节的翻译请参见: http://blog.csdn.net/column/details/gradle-translation.html 翻译项目请关注Githu ...

  5. SQL注入之Sqli-labs系列第三十六关(基于宽字符逃逸GET注入)和三十七关(基于宽字节逃逸的POST注入)

    0X1 查看源码 function check_quotes($string) { $string= mysql_real_escape_string($string); return $string ...

  6. “全栈2019”Java多线程第三十七章:如何让等待的线程无法被中断

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java多 ...

  7. 第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS

    第三百三十七节,web爬虫讲解2—PhantomJS虚拟浏览器+selenium模块操作PhantomJS PhantomJS虚拟浏览器 phantomjs 是一个基于js的webkit内核无头浏览器 ...

  8. 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  第三十七 ...

  9. “全栈2019”Java第三十七章:类与字段

    难度 初级 学习时间 10分钟 适合人群 零基础 开发语言 Java 开发环境 JDK v11 IntelliJ IDEA v2018.3 文章原文链接 "全栈2019"Java第 ...

  10. Linux常用三十七条指令

    Linux常用三十七条指令 基础指令(11):ls,pwd,cd,mkdir,touch,cp.mv,rm,vim,>/>>/,cat 进阶指令(10):df,free,head,t ...

随机推荐

  1. EPX Studio产品功能介绍

    EPX主要面向谁解决什么问题   EPX是什么? EPX基于计算机语言 EPX是利用基于Pascal的FastScript语言作为基础语言,在其中增加了许多函数与特性的一个扩展,将EPX组件本身融入到 ...

  2. 常用的 Git 命令与场景

    Git 分布式版本控制系统 它拥有完整的版本控制功能,能够解决多人协作的问题 将自己的代码同步到 Github 上能够提升开发效率 git 会记录你每一次的版本修改操作 常用的 Git 操作 # 指定 ...

  3. Angular 从入坑到挖坑 - HTTP 请求概览

    一.Overview angular 入坑记录的笔记第四篇,介绍在 angular 中如何通过 HttpClient 类发起 http 请求,从而完成与后端的数据交互. 对应官方文档地址: Angul ...

  4. Caused by: java.lang.IllegalArgumentException

    Caused by: java.lang.IllegalArgumentException 是因为jdk较高而项目需要的是低版本的问题 1.将idea或idea里的语言级别调到适合自己项目的版本比如安 ...

  5. Selenium系列(七) - 切换iframe

    如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识, ...

  6. 从SqlSessionFactoryBean的引用浅谈spring两种bean模式

    mybatis是以一个 SqlSessionFactory 的实例为中心的.SqlSessionFactory可以通过SqlSessionFactoryBuilder获得实例.使用mybatis-sp ...

  7. python之面向对象的成员,方法,属性,异常处理

    一.类的私有成员 1. 类中的私有成员是什么? 私有:只有满足一部分条件的才能使用 私有类的属性 私有对象的属性 私有方法 正常状态 class B: school_name = '老男孩教育' de ...

  8. OpenCV-Python 立体图像的深度图 | 五十二

    目标 在本节中, 我们将学习根据立体图像创建深度图. 基础 在上一节中,我们看到了对极约束和其他相关术语等基本概念.我们还看到,如果我们有两个场景相同的图像,则可以通过直观的方式从中获取深度信息.下面 ...

  9. BUAA_2020_OO_第一单元总结

    三次作业,三次成长 第一次作业--幂函数求导总结 作业思路和心得 第一次作业的要求只有x的指数这样的幂函数加减组成表达式,对表达式进行求导,而且没有格式错误的检查,所以难度感觉还不是很高.不过由于我寒 ...

  10. Spring ioc xml 实例化bean 自己实现

    public class DefClassPathXmlApplicationContext { private String xmlPath; public DefClassPathXmlAppli ...