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的更多相关文章

  1. 初学python - 脚本文件

    解析:   第一行 #!/usr/bin/env python - py脚本运行环境[用python解释器解释脚本文件-对应python安装路径] 第二行 #-*-coding:utf-8-*- - ...

  2. Python day13文件的读写

    # 文件操作 f=open("E:\\1.txt",encoding="GBK")#打开文件 print(f.writable())#是否可写 print(f. ...

  3. 初学Python——文件操作第三篇

    一.引言 什么?有了第二篇文件操作还不够?远远不够!而且在读完第三篇文件操作还是不够.关于文件的操作,后续的学习中将不断学习新的操作方式,使用更加合适的方法. 进入正题,上一篇讲到,Python对文件 ...

  4. 初学Python(一)——数据类型

    初学Python(一)——数据类型 初学Python,主要整理一些学习到的知识点,这次是数据类型. #-*- coding:utf-8 -*- #整数 print 1 #浮点数=小数 print 1. ...

  5. 初学Python之爬虫的简单入门

    初学Python之爬虫的简单入门 一.什么是爬虫? 1.简单介绍爬虫   爬虫的全称为网络爬虫,简称爬虫,别名有网络机器人,网络蜘蛛等等. 网络爬虫是一种自动获取网页内容的程序,为搜索引擎提供了重要的 ...

  6. 初学Python常见异常错误,总有一处你会遇到!

    初学Python常见错误 忘记写冒号 误用= 错误 缩紧 变量没有定义 中英文输入法导致的错误 不同数据类型的拼接 索引位置问题 使用字典中不存在的键 忘了括号 漏传参数 缺失依赖库 使用了pytho ...

  7. 初学Python写二进制文件

    初学Python写二进制文件 把一个图片的16进制数据保存到一个txt文本,从这个txt文本读出并保存为二进制文件jpg图片文件.说明:图片读出的0xff粘贴ff到文本中,读出时是字符串的”ff”. ...

  8. 初学Python,需要装什么软件?

    学习Python需要安装什么软件呢?也许你是一位编程小白,还不知道如何如何安装Python软件和开发环境.那么今天我们就来学一下关于Python软件.开发环境的相关知识,希望对你有用. 学Python ...

  9. Python读写文件

    Python读写文件1.open使用open打开文件后一定要记得调用文件对象的close()方法.比如可以用try/finally语句来确保最后能关闭文件. file_object = open('t ...

  10. 初学Python

    初学Python 1.Python初识 life is short you need python--龟叔名言 Python是一种简洁优美语法接近自然语言的一种全栈开发语言,由"龟叔&quo ...

随机推荐

  1. GUI容器之Frame

    Frame public class MyFrame { public static void main(String[] args) { //创建一个Frame对象 Frame frame = ne ...

  2. vue 引用省市区三级联动(element-ui Cascader)

    npm 下载 npm install element-china-area-data -S main.js import {provinceAndCityData,regionData,provinc ...

  3. Python习题集(十五)

    每天一习题,提升Python不是问题!!有更简洁的写法请评论告知我! https://www.cnblogs.com/poloyy/category/1676599.html 题目 请写一个函数,该函 ...

  4. 模拟BS服务器

    一.模拟BS服务器分析 二.BS模拟服务器代码实现 图片都是单独请求,后台单独线程,这边是通过构造方法传入的Runable接口的实现类匿名对象创建线程: 创建本地输入流读取到网络输出流传过来的信息再放 ...

  5. python库--jieba(中文分词)

    import jieba 精确模式,试图将句子最精确地切开,适合文本分析:全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义:搜索引擎模式,在精确模式的基础上,对长词再次切 ...

  6. 简单操作:10分钟实现在kubernetes(k8s)里面部署服务器集群并访问项目(docker三)

    前言 经过docker安装.k8s开启并登录,我们终于到 "部署k8s服务器集群并访问项目" 这一步了,实现的过程中有太多坑,好在都填平了,普天同庆. 在进行当前课题之前,我们需要 ...

  7. PTA 面向对象程序设计 7-1 2017Final 圆周率山

    7-1 2017Final 圆周率山 为了参加学校的社团风采展,怡山小学数学组的同学们决定画一座圆周率山,以宣传圆周率. 已知圆周率为:3. 1415926535 8979323846 2643383 ...

  8. 每日学习——iframe标签伪造ajax

    刚开始学习ajax,好难,看不懂啊看不懂. 伪造ajax加载网页 <!DOCTYPE html> <html> <head lang="en"> ...

  9. 解决wampserver无法启动问题

    如果无法启动,找不到原因.直接依次点击打开到:控制面板--管理工具--事件查看器--windows日志--应用程序,查看对应进程错误信息对症下药即可. 我这个错误就是8099端口错误,运行cmd命令, ...

  10. centos7.5 部署 lopendap

    一.LDAP究竟是什么? LDAP是轻量目录访问协议,英文全称是Lightweight Directory Access Protocol,一般都简称为LDAP.它是基于X.500标准的,但是简单多了 ...