文件处理

  • 打开文件
    • 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)

  1. read()默认值是-1,会自动读取到最后一个值

  2. 可以给read指定一个值,read每次读取都会从上次读取结束的位置开始。换行符也算一个字符。

  3. 如果read指定的读取数量大于实际数量,这会读取所有文件。如果没有内容,会返回一个‘’空串

逐行读取

语法:文件对象.readline()
每次读取一行内容。
语法:文件对象.readlines()
一行一行读取,并且会把每行内容自动封装到列表中。

文件读取位置

  1. tell()可以用来返回当前读取到的位置
  2. seek(参数1,参数2)可以修改当前读取的位置
    1. 参数1用于指定读取位置。
    2. 第二个参数为从哪开始指定位置
      • 第二个参数接收: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 -*-相关推荐

  1. python 文件操作 os模块和shutil模块

    转载自:http://www.cnblogs.com/rollenholt/archive/2012/04/23/2466179.html ############################## ...

  2. python文件传输模块ftplib模块的使用

    python文件传输模块ftplib模块的使用 文章目录: 一.ftplib介绍 1.ftplib的简单介绍 2.ftp的API说明 1)ftp登陆连接 2)ftp相关命令操作 二.ftplib实例说 ...

  3. python文件操作和模块_Python(五)--模块与文件操作

    Python(五)–模块与文件操作 模块和包 模块 模块是包含Python定义和语句的文件,把一组相关函数或代码组织到一个文件中,一个文件即一个模块.模块的文件名 = 模块名+后缀.py 模块之间代码 ...

  4. 《看漫画学python》第1章介绍python的历史和特点

    30年前,第一个Python编译器问世,标志着Python的第一个版本正式诞生. 30年后,Python成为了名副其实的最受欢迎程序设计语言之一,甚至在中小学里也掀起了Python狂潮. 经过30年的 ...

  5. python六十七课——网络编程(基础知识了解)

    网络编程: 什么是网络编程? 网络:它是一种隐形的媒介:可以将多台计算机使用(将它们连接到一起) 网络编程:将多台计算机之间可以相互通信了(做数据交互) 一旦涉及到网络编程,划分为两个方向存在,一方我 ...

  6. python文件调用python文件_自己写的python文件如何相互调用

    自己写的python文件如何相互调用?Python中的模块库十分常用,对于常用的模块可以自己动手自定义,但是如何进行调用呢? 模块相互调用 同级目录调用时的两种方法import module prin ...

  7. npm安装模块版本符_Java SE 9:模块和模块描述符基础知识(第2部分)

    npm安装模块版本符 I have already discuss about "Java 9 Module System" in high level in my previou ...

  8. Python(28)-文件,os模块

    文件 1. 文件 2. 文件的基本操作 3. 读取文件open() 3.1 文件指针: 标记从哪一个位置开始读取数据. 3.2 文件的打开方式mode 3.3 文件按行读取 3.3.1 readlin ...

  9. python os模块打开文件_python OS 模块 文件目录操作

    os模块中包含了一系列文件操作的函数,这里介绍的是一些在Linux平台上应用的文件操作函数.由于Linux是C写的,低层的libc库和系统调用的接口都是C API,而Python的os模块中包括了对这 ...

最新文章

  1. php自动导入,PHP自动导入类
  2. footer固定在页面底部的实现方法总结
  3. 8.1 mnist_soft,TensorFlow构建回归模型
  4. 【Oracle RAC故障分析与处理】
  5. P2754 [CTSC1999]家园 / 星际转移问题(网络流)
  6. Redis 如何实现分布式锁?
  7. Ubuntu 18.04从源代码编译安装GPU支持的Tensorflow 1.8.0
  8. e.preventdefault() 别滥用
  9. 常用sql语句及案例(oracle)
  10. iOS开发之旧版本Xcode下载
  11. [专题练习] Part1 搜索
  12. vue 项目初始化、mock数据以及安装less
  13. Lanczos 法 和 QR分解 求解实对称矩阵特征值
  14. 最常用的8款windows字体推荐
  15. Word文档格式的解码分析
  16. WORD文档中的宏代码操作(表格批量操作))
  17. [Halcon] license分享 — 2022.12月(持续更新)
  18. 关于宽哥英语课,本人的遭遇
  19. [JS]Array对象
  20. 快速解读Nor Flash Datasheet

热门文章

  1. LCD12864液晶显示屏与12位AD模块程序
  2. 数据点太多matlab曲线较粗,matlab数据太多怎么拟合曲线
  3. 费率与利率的差别_费率是什么(利率和费率有啥区别?)
  4. 使用 Webmin+bind9快速搭建私有DNS服务器
  5. JS流程控制语句 反反复复(while循环) 和for循环有相同功能的还有while循环, while循环重复执行一段代码,直到某个条件不再满足。...
  6. 神经网络阈值是什么意思,神经网络阈值如何确定
  7. 以色列量子计算软件公司,与欧洲机构合作开发薛定谔猫状态纠错技术
  8. 深入理解Camera基础知识点
  9. 杂篇-01-Unity中创建Mesh时遇到的问题
  10. Matlab:表示 MATLAB 中的日期和时间