环境变量

在操作系统中定义的环境变量,全部保存在os.environ这个变量中,可以直接查看:

import os

print(os.environ)

操作文件和目录

操作文件和目录的函数一部分放在os模块中,一部分放在os.path模块中,这一点要注意一下。查看、创建和删除目录可以这么调用:

print(os.path.abspath('.'))#查看当前目录的绝对路径
os.path.join('D:/lesson','testdir')#在某个目录下创建一个新目录,首先把新目录的完整路径表示出来:
os.mkdir('D:/lesson/testdir')#创建一个目录
os.rmdir('D:/lesson/testdir')#删除一个目录

想要把两个路径合成一个时,不要使用字符串拼接,而是通过os.path.join()函数,这样可以正确处理不同操作系统的路径分隔符

同样的道理,拆分路径也不要去拆字符串,而是通过os.path.split()函数,这样可以把一个路径拆分为两部分,后一部分总是最后级别的目录或文件名

print(os.path.split('D:/lesson/testdir/test.txt'))
print(os.path.splitext('path/to/file.text'))#获取文件拓展名

合并、拆分路径的函数并不要求目录和文件要真实存在,它们只对字符串进行操作。

文件操作

os.rename('D:/lesson/test.txt','D:/lesson/text.py')#对文件重命名
os.remove('D:/lesson/text.py')#删除文件

复制文件可以从shutil模块的copyfile()函数,os模块没有提供

理论上复制可以通过读写来文成,只不过要写很多代码

利用Python特性来过滤文件
比如我们要列出当前目录下的所有目录,只需要一行代码:

print([x for x in os.listdir('.') if os.path.isdir(x)])

要列出所有的.py文件,也只需一行代码:

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

listdir()返回指定路径下的文件和文件夹列表

print(os.listdir('D:/'))

判断某个路径是否为目录

print(os.path.isdir('D:/lesson'))

判断某个路径是否为文件

print(os.path.isfile('D:/lesson'))

 

练习

编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径。

使用os.walk():遍历当前路径下目录,子目录及文件,通过root路径-dirs目录-files文件这样的形式返回

def detect_walk(path,failename):
for root ,dirs,files in os.walk(path):
for a in files:
if failename in a :
print(root,a)
detect_walk('D:/','test' )

使用递归函数

def fand_file(path,failname):
for x in os.listdir(path):
a = os.path.join(path,x)
if os.path.isfile(a) and failname in x:
print(a)
if os.path.isdir(a):
fand_file(a,failname)
fand_file('D:/安装程序','test')

Python3学习笔记24-操作文件和目录的更多相关文章

  1. Python3 IO编程之操作文件和目录

    如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...

  2. PHP学习笔记--文件目录操作(文件上传实例)

    文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...

  3. python学习笔记八:文件与目录

    一.文件的打开和创建 1.打开 open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello ...

  4. Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)

    在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...

  5. Python学习笔记(二十五)操作文件和目录

    摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...

  6. python学习笔记 操作文件和目录

    如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...

  7. Windows phone 8 学习笔记(2) 数据文件操作

    原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...

  8. (三)linux 学习 --操作文件和目录

    The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap05.html 文章目录 通配符 字符范围 ` ...

  9. Python3学习笔记 - 准备环境

    前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...

随机推荐

  1. oracle存储过程递归调用

    oracle存储过程递归调用,如果where子句使用的是传入的参数, 在以后的递归调用中参数就是第一次调用的参数值,解决办法是定义变量,使用自定义的变量问题可以解决.

  2. vlc sdl2.0 播放示例

    #include <stdio.h> #include <stdint.h> #include <math.h> #include <stdlib.h> ...

  3. A1054. The Dominant Color

    Behind the scenes in the computer's memory, color is always talked about as a series of 24 bits of i ...

  4. json模块和pickle模块(二十二)

    之前我们学习过用eval内置方法可以将一个字符串转成python对象,不过,eval方法是有局限性的,对于普通的数据类型, json.loads和eval都能用,但遇到特殊类型的时候,eval就不管用 ...

  5. 常用服务器构建 ftp

    ftp服务器1.安装vsftpd服务器sudo apt-get install vsftpd2.配置vsftpd.conf文件sudo vi /etc/vsftpd.conf添加下面设置anonymo ...

  6. 基于Spring Cloud的微服务入门教程

    (本教程的原地址发布在本人的简书上:http://www.jianshu.com/p/947d57d042e7,若各位看官有什么问题或不同看法请在这里或简书留言,谢谢!) 本人也是前段时间才开始接触S ...

  7. GET_WHEEL_DELTA_WPARAM宏在C#

    1.高位字,署名: ((short)(wParam>>16)) 2. 为了获得最大的清晰,我会定义一组这样的函数: internal static class NativeMethods ...

  8. QWidget窗口类

    import sys from PyQt5.QtWidgets import QWidget, QApplication,QPushButton from PyQt5.QtGui import QIc ...

  9. 堆叠窗口QStackedWidget

    经常将QStackedWidget和QListWidget或者QListView搭配使用 import sys from PyQt5.QtWidgets import QApplication, QW ...

  10. Web开发之404小结

    404算是Web工程里最常见的错误代号了.今天做一个小结: 场景:[Tomcat运行正常,但无法访问自己建的项目:404] 结果:在URL拼写正确的情况下,无法访问目标工程任何页面 信息:[404]: ...