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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值