Python文件处理os模块介绍 -*- Python基础知识12 -*-
文件处理
- 打开文件
- open
- file
- mode
- encoding
- 操作文件
- 读取文档
- 逐个读取read
- 逐行读取
- 文件读取位置
- 写入文档
- write
- 关闭文件
- close
- with... as...
- 实例
- os模块
打开文件
先假设我们在文件中出来现在已经有的.py文件还有一个叫text.txt的文件。
open
语法:open(file, mode=‘r’, buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
open中参数众多,但是我们常用的参数也就只有file,mode和encoding,接下来我们就来介绍一下这几个参数的作用
file
文件名或路径,这是open的必填参数,如果调用open最少你要说清你要打开那个文件。
路径小知识:在Windows系统中路径的分割使用的是\但是\在Python中是转义字符,所以我们可以使用\来讲\转义成普通\,或使用f’'格式化字符串,或使用/来分割路径,因为咋Linux系统中路径的分割就是使用/进行的。
open(text.txt)
mode
文件打开模式,先来介绍参数,参数具体用法会在操作文档的时候具体介绍
模式 | 功能 |
---|---|
r | 只读模式(如果不填写,则默认就是此模式) |
w | 覆盖写入模式(如果存在和写入文件同名文件则覆盖,不存在则新建) |
x | 新建文件写入模式(如果存在和写入文件同名文件则报错,不存在则新建) |
a | 追加写入模式(如果存在和写入文件同名文件则在文件内容后追加,不存在则新建) |
b | 二进制读取模式,此模式可以读取除纯文本之外的其他文件 |
t | 文本模式(默认打开模式) |
- | 扩展模式,可以扩展上述的模式,但必须要配合使用,比如:r+就扩展了只读模式,让这个模式既可读又可写
encoding
文件的编码格式,如果不填写就只能读取ASCII格式的文件,读取中文的文件就会报错,如果想要读取中文,一般常用UTF-8。
操作文件
读取文档
逐个读取read
语法:文件对象.read(size = -1)
read()默认值是-1,会自动读取到最后一个值
可以给read指定一个值,read每次读取都会从上次读取结束的位置开始。换行符也算一个字符。
如果read指定的读取数量大于实际数量,这会读取所有文件。如果没有内容,会返回一个‘’空串
逐行读取
语法:文件对象.readline()
每次读取一行内容。
语法:文件对象.readlines()
一行一行读取,并且会把每行内容自动封装到列表中。
文件读取位置
- tell()可以用来返回当前读取到的位置
- seek(参数1,参数2)可以修改当前读取的位置
- 参数1用于指定读取位置。
- 第二个参数为从哪开始指定位置
- 第二个参数接收:0从头开始计数(默认),1从当前位置开始计数,2从最后位置开始计数。
- 第二个参数只能在b模式下改变。在b模式下seek参数一代表的为字节,在utf-8中一个中文字符等于三个字节
写入文档
write
语法:文件对象.write(写入内容)
当文档处于w、x、a等写入模式的情况下才能使用write,否则会报错
write写入内容时会将写入的字数作为返回值返回
data = open('text.txt', 'w', encoding='utf-8')
name = '我是寻觅'
data1 = data.write(name)
print(data1) # 4
关闭文件
close
语法:文件对象.close
将使用完的文件及时关闭,能有利于提升程序性能。
with… as…
使用这个函数打开文件使用完后会自动关闭,让代码变得更简洁
语法:with open() as 变量:
with open('text.txt', 'w') as data:name = 'My name xun_mi'data.write(name)
实例
操作音乐文件
with open('三无MarBlue - 童话镇(Cover 暗杠).mp3', 'rb') as music:r = 1024*100data = music.read(r)with open('裁剪出的童话镇.mp3', 'wb') as new:new.write(data)with open('三无MarBlue - 童话镇(Cover 暗杠).mp3', 'rb') as data:while True:r = data.read(1024*1000)if r == b'':breakwith open('新裁剪出的童话镇.mp3', 'ab') as new:new.write(r)
os模块
os模块是Python中一个内置的用来操作文件的模块
下面我们来介绍一些常用方法。
方法 | 功能 |
---|---|
os.listdir(‘路径,默认文件所在路径’) | 读取指定路径目录结构并作为返回值返回 |
os.getcwd() | 读取当前文件所在目录并作为返回值返回 |
os.chdir ('路径‘’) | 用来改变文件当前所在路径 |
os.mkdir(‘目录名’) | 创建目录 |
os.rmdir(‘目录名’) | 删除目录(只能删除空目录,非空目录会报错) |
os.makedirs('目录名’) | 生成多层目录 |
os.removedirs('目录名’) | 删除多层空目录(只能删除空目录,非空目录会报错) |
os.rename('原目录名‘,'新目录名’) | 目录重命名 |
os.stat(‘目录名或文件名’) | 读取目录或文件信息 |
os.name | 判断当前系统信息,如果是Windows则返回nt,Linux则返回posix |
os.environ | 获取系统变量 |
os.system('命令语句’) | 运行shell命令 |
import os
# listdir读取指定路径目录结构
data = os.listdir('.')
print(data)# getcwd读取当前文件所在目录
data = os.getcwd()
print(data)# mkdir创建目录
os.mkdir('我是os模块创建的目录')# chdir用来改变文件当前所在路径
os.chdir('./我是os模块创建的目录')
data = os.getcwd()
print(data)# rmdir删除一层目录
os.rmdir('我是os模块创建的目录')# makedirs生成多层目录
os.makedirs('我是os创建的多层目录\\第二层')# removedirs删除多层空目录
os.removedirs('我是os创建的多层目录')# rename重命名文件
os.rename('我是os模块创建的目录', '我是经过重命名的文件')# stat获取文件或目录信息
data1 = os.stat('我是os创建的多层目录')
data2 = os.stat('os模块.py')
print(data1, data2)# name输出当前运行系统环境Windows为nt,Linux为posix
data = os.name# environ获取系统变量(发现了有部分中文乱码情况,但只是部分乱码,很奇怪)
data = os.environ# system运行shell命令(发生中文乱码情况,这是字符编码问题,默认字符编码是GBK这个中文编码,但是很奇怪会乱码。解决方案1.使用chcp 65001将编码改变成utf-8)
os.system('chcp 65001')
os.system('dir')
Python文件处理os模块介绍 -*- Python基础知识12 -*-相关推荐
- python 文件操作 os模块和shutil模块
转载自:http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html ############################## ...
- python文件传输模块ftplib模块的使用
python文件传输模块ftplib模块的使用 文章目录: 一.ftplib介绍 1.ftplib的简单介绍 2.ftp的API说明 1)ftp登陆连接 2)ftp相关命令操作 二.ftplib实例说 ...
- python文件操作和模块_Python(五)--模块与文件操作
Python(五)–模块与文件操作 模块和包 模块 模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码 ...
- 《看漫画学python》第1章介绍python的历史和特点
30年前,第一个Python编译器问世,标志着Python的第一个版本正式诞生. 30年后,Python成为了名副其实的最受欢迎程序设计语言之一,甚至在中小学里也掀起了Python狂潮. 经过30年的 ...
- python六十七课——网络编程(基础知识了解)
网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...
- python文件调用python文件_自己写的python文件如何相互调用
自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢? 模块相互调用 同级目录调用时的两种方法import module prin ...
- npm安装模块版本符_Java SE 9:模块和模块描述符基础知识(第2部分)
npm安装模块版本符 I have already discuss about "Java 9 Module System" in high level in my previou ...
- Python(28)-文件,os模块
文件 1. 文件 2. 文件的基本操作 3. 读取文件open() 3.1 文件指针: 标记从哪一个位置开始读取数据. 3.2 文件的打开方式mode 3.3 文件按行读取 3.3.1 readlin ...
- python os模块打开文件_python OS 模块 文件目录操作
os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C API,而Python的os模块中包括了对这 ...
最新文章
- php自动导入,PHP自动导入类
- footer固定在页面底部的实现方法总结
- 8.1 mnist_soft,TensorFlow构建回归模型
- 【Oracle RAC故障分析与处理】
- P2754 [CTSC1999]家园 / 星际转移问题(网络流)
- Redis 如何实现分布式锁?
- Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0
- e.preventdefault() 别滥用
- 常用sql语句及案例(oracle)
- iOS开发之旧版本Xcode下载
- [专题练习] Part1 搜索
- vue 项目初始化、mock数据以及安装less
- Lanczos 法 和 QR分解 求解实对称矩阵特征值
- 最常用的8款windows字体推荐
- Word文档格式的解码分析
- WORD文档中的宏代码操作(表格批量操作))
- [Halcon] license分享 — 2022.12月(持续更新)
- 关于宽哥英语课,本人的遭遇
- [JS]Array对象
- 快速解读Nor Flash Datasheet
热门文章
- LCD12864液晶显示屏与12位AD模块程序
- 数据点太多matlab曲线较粗,matlab数据太多怎么拟合曲线
- 费率与利率的差别_费率是什么(利率和费率有啥区别?)
- 使用 Webmin+bind9快速搭建私有DNS服务器
- JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
- 神经网络阈值是什么意思,神经网络阈值如何确定
- 以色列量子计算软件公司,与欧洲机构合作开发薛定谔猫状态纠错技术
- 深入理解Camera基础知识点
- 杂篇-01-Unity中创建Mesh时遇到的问题
- Matlab:表示 MATLAB 中的日期和时间