IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> python_文件操作 -> 正文阅读

[Python知识库]python_文件操作

文件操作相关模块概述

名称说明
io模块文件流的输入和输出操作input output
os模块基本操作系统功能,包括文件操作
glob模块查找符合特定规则的文件路径名
fnmatch模块使用模式来匹配文件路径名
fileinput模块处理多个输入文件
filecmp模块用于文件的比较
cvs模块用于csv文件处理
pickle和cPickle用于序列化和反序列化
xml包用于XML数据处理
bz2、gzip、 zipfile、 zlib、 tarfile?用 于处理压缩和解压缩文件(分别对应不同的算法)

创建文件对象open()

open()函数用于创建文件对象,基本语法格式如下:?

????????????????????????open(文件名[打开方式)

如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如: D:\a\b.txt. 为了减少“\”的输入,可以使用原始字符串: r“d:\b.txt" .示例如下:

????????????????????????f = open(r"d:\b. txt","a)

打开方式有如下几种

模式描述
r读read模式
w写write模式。如果文件不存在则创建:如果文件存在,则重写新内容:
a追加append 模式。如果文件不存在则创建;如果文件存在,则在文件末尾追加内容
b二进制binary模式(可与其他模式组合使用)
+读、写模式(可与其他模式组合使用)

基本文件的写入

文本文件的写入一般就是三个步骤:

? ? ? ? 1.创建文件对象

? ? ? ? 2.写入数据

????????3.关闭文件对象

#文本写入简单测试
f = open("d:\a.txt","a")
a = "i love you"
f.write(a)
f.close()

write()/writelines()写入数据

write(a):把字符串a写入到文件中

writelines(b);把字符串列表写入文件中,不添加换行符

[操作]添加字符串列表数据到文件中

f = open(r"d:\bb. txt", "w' , encoding-"utf-8")
s = ["老大\n",“老三\n",“老四\n"]
f. writelines(s)
f. close()

close()关闭文件流

????????由于文件底层是由操作系统控制,所以我们打开的文件对象必须显式调用close()方法关闭文件对象。当调用close()方法时,首先会把缓冲区数据写入文件(也可以直接调用flush()方法),再关闭文件,释放文件对象。

????????为了确保打开的文件对象正常关闭,一般结合异常机制的finally或者with关键字实现无论何种情况都能关闭打开的文件对象。

文本文件的读取

文件的读取一般使用如下三个方法:

1. read([size])

????????从文件中读取size个字符,并作为结果返回。如果没有size参数,则读取整个文件。读取到文件末尾,会返回空字符串。

2. readline()

????????读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。

3. readlines()

????????文本文件中,每一行作为-一个字符串存入列表中,返回该列表

#测试文件读取
with open(r"a.txt","r",encoding="utf-8") as f:
    str = f.read(3)
    print(str)
#测试按行读取文本
with open(r"a.txt","r",encoding="utf-8") as f:
    for a in f:
        print(a,end="")

pickle序列化

????????序列化指的是:将对象转化成“串行化”数据形式,存储到硬盘或通过网络传输到其他地方。反序列化是指相反的过程,将读取到的“串行化数据”转化成对象。我们可以使用pickle模块中的函数,实现序列化和反序列操作。

import pickle

a1 = "jack"
a2 = 123
a3 = [1,2,3,4]

with open("data.dat","wb") as f:
    pickle.dump(a1,f)
    pickle.dump(a2,f)
    pickle.dump(a3,f)

with open("date.dat","rb") as f:
    b1 = pickle.load(f); b2 = pickle.load(f);b3 = pickle.load(f)
    print(b1);print(b2);print(b3)

    print(id(a1));print(id(b1))

CSV文件读取

????????csv(Comma Separated Values)是逗号分隔符文本格式,常用于数据交换、Excel 文件和数据库数据的导入和导出。与Excel文件不同,CSV 文件中:

????????值没有类型, 所有值都是字符串;不能指定字体颜色等样式;不能指定单元格的宽高,不能合并单元格;没有多个工作表;不能嵌入图像图表

#测试csv文件的读取和写入
import csv

with open("c.csv","r") as f:
    a_csv = csv.reader(f)
    #print(list(a_csv))
    for row in a_csv:
        print(row)

with open("d.csv","w") as f :
    b_csv =csv.writer(f)
    b_csv.writerow(["name","job","age"])

模块

os模块

os模块可以帮助我们直接对操作系统进行操作。我们可以直接调用操作系统的可执行文件、命令,直接操作文件、目录等等。在系统运维的核心基础。

[示例] os.system调用windows系统的记事本程序

import os
os. system (" notepad. exe" )

[示例] os.system 调用windows系统中ping命令

import os
os. system(" ping www. baidu. com") 

os模块-文件和目录操作

os模块下常用操作文件的方法
方法名描述
remove(path)删除指定的文件
rename(src,dest)重命名文件或目录
stat(path)返回文件的所有属性
listdir(path)返回path目录下的文件和目录列表
os模块下关于目录操作的相关方法
方法名描述
mkdir(path)创建目录
makedirs(path1/path2/pat.3...)创建多级目录
rmdir(path)删除目录
removedirs(path1/pah...).删除多级目录
getcwd()返回当前工作目录: current work dir
chdir(path)把path设为当前工作目录
walk()遍历目录树
sep当前操作系统所使用的路径分隔符

os.path模块

os.path模块目录相关操作
方法描述
isabs(path)判断path是否绝对路径
isdir(path)判断path是否为目录
isfile(path)判断path是否为文件
exists(path)判断指定路径的文件是否存在
getsize(filename)返回文件的大小
abspath(path)返回绝对路径
dirname(p)返回目录的路径
getatime(filename)返回文件的最后访问时间
getmtime(filename)返回文件的最后修改时间
walk(top,func,arg)递归方式遍历目录
join(path,* paths)连接多个path
split(path)对路径进行分割,以列表形式返回
splitext(path)从路径中分割文件的扩展名

shutil模块

????????shutil模块是python标准库中提供的,主要用来做文件和文件夹的拷贝、移动、删除等:还可以做文件和文件夹的压缩、解压缩操作

zipfile模块

z1 = zipfile. ZipFile(" 'd:/a. zip","w")
z1. write("1. txt")
z1. write("1_ copy. txt' )
z1. close0

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2022-01-25 10:32:27  更:2022-01-25 10:34:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 2:30:43-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码