初学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 ...
随机推荐
- 利用Struts2拦截器完成文件上传功能
Struts2的图片上传以及页面展示图片 在上次的CRUD基础上加上图片上传功能 (https://www.cnblogs.com/liuwenwu9527/p/11108611.html) 文件上传 ...
- Redis的读写分离
1.概述 随着企业业务的不断扩大,请求的并发量不断增长,Redis可能终会出现无法负载的情况,此时我们就需要想办法去提升Redis的负载能力. 读写分离(主从复制)是一个比较简单的扩展方案,使用多台机 ...
- Linux - last 命令(Mac 电脑)
前言 为啥写这篇? 因为听 grep.sed 教程的时候有这个命令栗子 加上工作中,运维给我排查问题的时候也用到了,感觉挺重要,先了解为敬! 命令作用 显示用户和TTY的最后登录次数 这个是在 Mac ...
- Abp Vnext3 vue-admin-template(三获取用户信息)
因为获取用户比较简单,只需要把用户名及头像地址赋值即可(也许理解错误,如果发现请告知谢谢), 首先将src\api\usr.js中的url请求地址改为以下代码 export function getI ...
- 2.设计模式常用的UML图分析(用例图、类图与时序图)
1-用例图 概述 展现了一组用例.参与者以及他们之间的关系. 用例图从用户角度描述系统的静态使用情况,用于建立需求模型. 用例特征 保证用例能够正确捕捉功能性需求,判断用例是否准确的依据. 用例是动宾 ...
- 【第十八篇】- Maven Eclipse之Spring Cloud直播商城 b2b2c电子商务技术总结
Maven Eclipse Eclipse 提供了一个很好的插件 m2eclipse ,该插件能将 Maven 和 Eclipse 集成在一起. 在最新的 Eclipse 中自带了 Maven,我们打 ...
- lombok时运行编译无法找到get/set方法 看这篇就够了
今天项目突然运行的时候报错,提示找不到get和set方法,这个时候我就检查了项目,在编译器(idea)是没有报错的.说明编译没问题,只是运行过不去. 后面就开始用我的方法解决这个问题,一步一步排查. ...
- 【Sass/SCSS 完整自学中文版教程02】SCSS 官方英文文档翻译整理
Sass 调试 目录 Sass 调试 @error @warn @debug 如果对本文有任何问题,建议,或者在前端技术体系方面有任何问题,可以添加我的微信: drylint , 我会尽可能为你解答, ...
- 初探DispatcherServlet#doDispatch
初探DispatcherServlet#doDispatch 写在前面 SpringBoot其实就是SpringMVC的简化版本,对于request的处理流程大致是一样的, 都要经过Dispatche ...
- Python-对Pcap文件进行处理,获取指定TCP流
通过对TCP/IP协议的学习,本人写了一个可以实现对PCAP文件中的IPV4下的TCP流提取,以及提取指定的TCP流,鉴于为了学习,没有采用第三方包解析pcap,而是对bytes流进行解析,其核心思想 ...