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. Python - 头部解析

    背景 写 python 的时候,基本都要加两个头部注释,这到底有啥用呢? #!usr/bin/env python # -*- coding:utf-8 _*- print("hello-w ...

  2. Windows安装Docker & Docker-Compose & 配置docker私有仓库

    一定要给windows先创建软连接,不然系统盘会爆表的: mklink /j .docker D:\Administrator\.docker Win7安装Docker Dockerfile # FR ...

  3. 理解MySQL回表

    回表就是先通过数据库索引扫描出数据所在的行,再通过行主键id取出索引中未提供的数据,即基于非主键索引的查询需要多扫描一棵索引树. 因此,可以通过索引先查询出id字段,再通过主键id字段,查询行中的字段 ...

  4. 机器学*——K*邻算法(KNN)

    1 前言 Kjin邻法(k-nearest neighbors,KNN)是一种基本的机器学*方法,采用类似"物以类聚,人以群分"的思想.比如,判断一个人的人品,只需观察他来往最密切 ...

  5. gentoo(贱兔) Linux作业系统的基本使用

    emerge是gentoo linux的portage包管理器的命令行工具emerge的基础使用:emerge 软件包名:安装某软件包 emerge nanoemerge --ask 软件包名:交互式 ...

  6. PHP的另一个高效缓存扩展:Yac

    之前的文章中我们已经学习过一个 PHP 自带的扩展缓存 Apc ,今天我们来学习另一个缓存扩展:Yac . 什么是 Yac 从名字其实就能看出,这又是鸟哥大神的作品.毕竟是 PHP 的核心开发人员,他 ...

  7. 关于php的ini文件相关操作函数浅析

    在小公司,特别是创业型公司,整个服务器的搭建一般也是我们 PHP 开发工程师的职责之一.其中,最主要的一项就是要配置好服务器的 php.ini 文件.一些参数会对服务器的性能产生深远的影响,而且也有些 ...

  8. CentOS下安装libmcrypt失败

    libmcrypt是什么?? 是加密算法扩展库---支持DES, 3DES, RIJNDAEL, Twofish, IDEA, GOST, CAST-256, ARCFOUR, SERPENT, SA ...

  9. win10系统移动热点使用技巧

    win10系统是自动移动热点功能,在平时测试的时候,有时需要进行手机抓包,需要手机和电脑处于同一网络当中,这时可以开启热点使用. 如何开启移动热点? 直接搜索"移动热点" 但是如果 ...

  10. JMeter主要元件

    配置元件 http cookie管理器 http信息头管理器 http请求默认值 统一管理 快速切换测试环境 http cache管理器 静态资源 监听器元件 查看结果树 分析查看某个请求的详情 请求 ...