Python3学习笔记24-操作文件和目录
环境变量
在操作系统中定义的环境变量,全部保存在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-操作文件和目录的更多相关文章
- Python3 IO编程之操作文件和目录
如果我们要操作文件,目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如ls,cp等命令 如果要在python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令指示简单地调用了操作系 ...
- PHP学习笔记--文件目录操作(文件上传实例)
文件操作是每个语言必须有的,不仅仅局限于PHP,这里我们就仅用PHP进行讲解 php的文件高级操作和文件上传实例我放在文章的最后部分.--以后我还会给大家写一个PHP类似于网盘操作的例子 注意:阅读此 ...
- python学习笔记八:文件与目录
一.文件的打开和创建 1.打开 open(file,mode): >>>fo = open('test.txt', 'r') >>>fo.read() 'hello ...
- Linux学习笔记之1——文件和目录管理(硬连接和软连接)(连结档,相当于快捷方式)
在这节将要学习linux的连接档,在之前用"ls -l" 查看文件属性的命令时, 其中第二个属性是连接数.那么这个连接数是干什么的?这就要理解inode. 先说一下文件是怎么存储的 ...
- Python学习笔记(二十五)操作文件和目录
摘抄:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014319253241 ...
- python学习笔记 操作文件和目录
如果我们要操作文件.目录,可以在命令行下面输入操作系统提供的各种命令来完成.比如dir.cp等命令. 如果要在Python程序中执行这些目录和文件的操作怎么办?其实操作系统提供的命令只是简单地调用了操 ...
- Windows phone 8 学习笔记(2) 数据文件操作
原文:Windows phone 8 学习笔记(2) 数据文件操作 Windows phone 8 应用用于数据文件存储访问的位置仅仅限于安装文件夹.本地文件夹(独立存储空间).媒体库和SD卡四个地方 ...
- (三)linux 学习 --操作文件和目录
The Linux Command Line 读书笔记 - 部分内容来自 http://billie66.github.io/TLCL/book/chap05.html 文章目录 通配符 字符范围 ` ...
- Python3学习笔记 - 准备环境
前言 最近乘着项目不忙想赶一波时髦学习一下Python3.由于正好学习了Docker,并深深迷上了Docker,所以必须趁热打铁的用它来创建我们的Python3的开发测试环境.Python3的中文教程 ...
随机推荐
- python常见面试题(三)
问题1 到底什么是Python?你可以在回答中与其他技术进行对比(也鼓励这样做). 答案 下面是一些关键点: Python是一种解释型语言.这就是说,与C语言和C的衍生语言不同,Python代码在运行 ...
- CF 987
毒瘤啊啊啊啊啊 虽然排名还不错,331,但是B我没做出来...... 这是战绩: 可以看到我大发神威势如破竹的A了CDE,但是B把我卡了三次...不然我就能进前300了(还是很水). 逐一分析题目: ...
- A1028. List Sorting
Excel can sort records according to any column. Now you are supposed to imitate this function. Input ...
- 【BZOJ2648】SJY摆棋子
题目大意:维护一个二维平面,平面上初始有 N 个点,支持两种操作:平面加点.查询距离某个指定点的最小哈密顿距离. 题解:学习到了 kd-tree 数据结构. kd-tree 类似于平衡树,即:每个节点 ...
- http和https的作用与区别
PS: https就是http和TCP之间有一层SSL层,这一层的实际作用是防止钓鱼和加密.防止钓鱼通过网站的证书,网站必须有CA证书,证书类似于一个解密的签名.另外是加密,加密需要一个密钥交换算法, ...
- 一次完整的 HTTP 请求过程
一次完整的HTTP请求过程从TCP三次握手建立连接成功后开始,客户端按照指定的格式开始向服务端发送HTTP请求,服务端接收请求后,解析HTTP请求,处理完业务逻辑,最后返回一个HTTP的响应给客户端, ...
- 【hihocoder】 Magic Box
题目1 : Magic Box 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 The circus clown Sunny has a magic box. When ...
- Java_myBatis_一对多映射
例如我们有需求需要实现以下查询 "一个用户对多条订单编号": select user.*,o.number,o.createtime from user left JOIN or ...
- golang锁
golang锁包:https://studygolang.com/pkgdoc sync.Mutex是一个互斥锁 var lock sync.Mutex 加锁段在中 lock.lock() lock. ...
- 51Nod-1436 方程的解数
题目链接 题解链接 版权属于以上链接 #include <iostream> #define mod(a, m) ((a) % (m) + (m)) % (m) using namesp ...