初学Python-day13 文件处理1
IO操作
一、os模块
作用:包含了操作系统的基本功能,提供了非常丰富的用来处理文件和目录的函数或方法。
1.属性
| 函数名 | 函数说明 |
| name |
获取操作系统的类型 |
| uname |
获取操作系统的信息(linux系统) |
| curdir |
返回当前的目录 |
2.方法(./ 代表当前目录)
| 函数名 | 函数说明 |
| getcwd() | 返回当前工作目录的绝对路径 |
| listdir(path) | 以列表的形式返回当前工作目录下的所有文件和目录 |
| mkdir(目录名) | 创建指定的目录(如果指定的目录已存在则报错) |
| rmdir(目录名) | 删除指定的目录(如果指定的目录不存在则报错) |
| rename(文件名,新名字) | 重命名 |
| remove(文件名) | 移除文件 |
| system(命令) | 运行命令shutdow -s -f |
3. os.path的常用方法
| 函数名 | 函数说明 |
| abspath() | 返回指定目录的绝对路径 |
| join() | 拼接路径,无论是否存在 |
| split() | 拆分路径,无论是否存在 |
| splitext() | 获取文件的扩展名,无论是否存在 |
| getsize() | 获取文件大小,返回字节 |
| isdir() | 判断是否为目录 |
| isfile | 判断是否为文件 |
| exists() | 判断文件或者目录是否存在 |
案列:(文件夹目录为A根目录,其中子目录为B,c,子文件:第一层.py;B文件夹里有子文件,c文件夹里也有子文件)
1.递归遍历目录
1 import os
2
3
4 def demo(path):
5 get_dir = os.listdir(path)
6 for f in get_dir:
7 new_path = os.path.join(path, f) # 拼凑完整路径, 绝对路径(path+文件名)
8 if os.path.isdir(new_path): # 判断是否是目录
9 demo(new_path)
10 if os.path.isfile(new_path): # 判断是否是文件
11 print(f)
12
13
14 path = r'E:\new_pychram\oldboy36\day13文件处理\A'
15 demo(path)
2.递归统计文件大小
1 import os
2
3
4 def demo(path):
5 file_size = 0
6 get_dir = os.listdir(path)
7 for f in get_dir:
8 new_path = os.path.join(path, f) # 拼凑完整路径, 绝对路径(path+文件名)
9 if os.path.isdir(new_path): # 判断是否是目录
10 file_size += demo(new_path)
11
12 if os.path.isfile(new_path): # 判断是否是文件
13 file_size += os.path.getsize(new_path)
14 return file_size
15
16
17 path = r'E:\new_pychram\oldboy36\day13文件处理\A'
18 print(demo(path))
3.递归获取一个目录下的所有py后缀的文件,并且可以动态输入的
1 import os
2
3
4 def get_suffix(path, new_fileList, suffix):
5 get_dir = os.listdir(path)
6 for f in get_dir:
7 new_path = os.path.join(path, f)
8 if os.path.isdir(new_path):
9 get_suffix(new_path, new_fileList, suffix)
10
11 if os.path.isfile(new_path):
12 file_suffix = new_path.split('.')[-1]
13 if file_suffix.upper() == suffix.upper():
14 new_fileList.append(f)
15
16
17 def show_file(path, suffix='py'):
18 new_fileList = []
19 get_suffix(path, new_fileList, suffix)
20 if not new_fileList:
21 print('您检索的文件的扩展名{}不存在'.format(suffix))
22 return
23 print('您要检索的扩展名为{}的文件个数为{},分别是:'.format(suffix, len(new_fileList)))
24 for f in new_fileList:
25 print(f)
26
27
28 def continue_get_file():
29 global mark
30 get_continue = input('是否继续检索(y/n):')
31 if get_continue == 'y':
32 mark = True
33 else:
34 mark = False
35 print('退出系统!')
36
37
38 mark = True
39 while mark:
40 path = input('请输入要检索的路径:')
41 suffix = input('请输入要检索的文件扩展名(默认py):')
42 if os.path.exists(path):
43 if suffix:
44 show_file(path, suffix)
45 continue_get_file()
46 else:
47 show_file(path)
48 continue_get_file()
49 else:
50 print('请输入正确的路径!')
初学Python-day13 文件处理1的更多相关文章
- 初学python - 脚本文件
解析: 第一行 #!/usr/bin/env python - py脚本运行环境[用python解释器解释脚本文件-对应python安装路径] 第二行 #-*-coding:utf-8-*- - ...
- Python day13文件的读写
# 文件操作 f=open("E:\\1.txt",encoding="GBK")#打开文件 print(f.writable())#是否可写 print(f. ...
- 初学Python——文件操作第三篇
一.引言 什么?有了第二篇文件操作还不够?远远不够!而且在读完第三篇文件操作还是不够.关于文件的操作,后续的学习中将不断学习新的操作方式,使用更加合适的方法. 进入正题,上一篇讲到,Python对文件 ...
- 初学Python(一)——数据类型
初学Python(一)——数据类型 初学Python,主要整理一些学习到的知识点,这次是数据类型. #-*- coding:utf-8 -*- #整数 print 1 #浮点数=小数 print 1. ...
- 初学Python之爬虫的简单入门
初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫 爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...
- 初学Python常见异常错误,总有一处你会遇到!
初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了pytho ...
- 初学Python写二进制文件
初学Python写二进制文件 把一个图片的16进制数据保存到一个txt文本,从这个txt文本读出并保存为二进制文件jpg图片文件.说明:图片读出的0xff粘贴ff到文本中,读出时是字符串的”ff”. ...
- 初学Python,需要装什么软件?
学习Python需要安装什么软件呢?也许你是一位编程小白,还不知道如何如何安装Python软件和开发环境.那么今天我们就来学一下关于Python软件.开发环境的相关知识,希望对你有用. 学Python ...
- Python读写文件
Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...
- 初学Python
初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔&quo ...
随机推荐
- 操作系统的IO模型
IO操作根据设备类型一般分为内存IO,网络IO,和磁盘IO.其中内存IO的速度大大快于后两者,计算机的性能瓶颈一般不在于内存IO. 尽管网络IO可通过购买独享带宽和高速网卡来提升速度,可以使用RAID ...
- Java基础(四)——抽象类和接口
一.抽象类 1.介绍 使用关键字 abstract 定义抽象类. abstract定义抽象方法,只有声明,不用实现. 包含抽象方法的类必须定义为抽象类. 抽象类中可以有普通方法,也可以有抽象方法. 抽 ...
- Python+mirai开发QQ机器人起步教程(2021.9.9测试有效)
参考:开发 mirai QQ机器人起步教程_叹之-CSDN博客_mirai python 本篇文章参考了以上博客,并对其中的失效内容和版本匹配问题进行了补充修改,实测能够成功运行.部分步骤的运行截图见 ...
- Appium自动化(8) - 可定位的控件属性
如果你还想从头学起Appium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1693896.html 前言 在前面几篇文章可以看到,一个 ...
- ubuntu安装glusterFS
以2台服务器为例: node1: 172.18.1.10 node2: 172.18.1.20 1) 修改主机名,修改hosts文件添加IP地址映射 hostname node1/node2vim / ...
- Vue设置全局cookies样式
''' 配置全局cookies样式 下载:cnpm install vue-cookies import cookies from 'vue-cookies' Vue.prototype.$cooki ...
- 学习PHP中的国际化日期格式化操作
对于国际化功能来说,日期相关的格式化操作也是一块重头戏,毕竟不同的时区,不同的国家对于日期的表示方式都会有些不同.今天我们主要来学习的就是国际化地表示日期相关的信息内容. 日期格式化 首先就是最直接的 ...
- adobe media encoder cc 2018无法打开,报错0xc0000005
在我这里是因为显卡的原因 下载NVIDIA然后打开NVIDIA控制面板,在里面选择软件的显卡,挨个试就行, 还不行就在设备管理器中将多余的先禁用,试一试
- 【TP3.2.3】addAll方法的坑
问题:做一个导入Excel到数据库的功能中需要用到addAll功能,但是每次执行到addAll()时都会报错,如下 Insert value list does not match column li ...
- ecshop调用指定分类热销-新品-精品
在模板页里首页写上代码: <?php$children = get_children(16);//此处为产品分类ID$smarty->assign( 'bestGoods1 ...