python_文本操作

前言

一、文件的分类

1.文本文件

文本文件存储的是普通**“字符”**文本,python 默认为 unicode 字符集(两个字节表示一个字符,最多可以表示:65536 个),可以使用记事本程序打开。但是,像 word 软件编辑的文档不是文本文件

2.二进制文件

二进制文件把数据内容用“字节”进行存储,无法用记事本打开。必须使用专用的软件解码。常见的有:MP4 视频文件、MP3 音频文件、JPG 图片、doc 文档等

二、文件操作的引用模块

模块列举

三、创建文件对象

open()函数用于创建文件对象,基本语法格式如下:
open(文件名[,打开方式])
如果只是文件名,代表在当前目录下的文件。文件名可以录入全路径,比如:D:\a\b.txt。

代码如下(示例):(简略版)

with open(r"cece.txt","r",encoding="utf-8") as f:
    for a in f:
        print(a,end="")

常见的打开方式

二进制文件和文本文件最大的区别是:如果我们没有增加模式“b”,则默认创建的是文本文件对象,处理的基本单元是“字符”。如果是二进制模式“b”,则创建的是二进制文件对象,处理的基本单元是“字节”。

with open ("说明.docx","rb") as f:
    with open("说明_copy.docx","wb") as w:
        for line in f.readlines():
            w.write(line)
print("文件copy成功")

三、文本文件的写入

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

  1. 创建文件对象
  2. 写入数据
  3. 关闭文件对象
<font color=#999AAA >代码如下(示例):
f= open(r"F:\1崔\测试.txt","a")
s="创建对象,写入对象,关闭对象"
f.write(s)
f=open(r"F:\1崔\测试.txt","r")
content=f.read()
print(content)
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()
##执行结果:
高淇
高老三
高老四

四、文件读取

1.文件读取的模式:

  1. read([size])
    从文件中读取 size 个字符,并作为结果返回。如果没有 size 参数,则读取整个文件。
    读取到文件末尾,会返回空字符串。
  2. readline()只会读取一行
    读取一行内容作为结果返回。读取到文件末尾,会返回空字符串。
  3. readlines()
    文本文件中,每一行作为一个字符串存入列表中,返回该列表
    【操作】 读取一个文件前 4 个字
with open(r"bb","r",encoding="utf-8") as f:
print(f.read(4))

【操作】文件较小,一次将文件内容读入到程序中

with open(r"d:\bb.txt","r") as f:
print(f.read())

【操作】按行读取一个文件

with open(r"bb.txt","r") as f:
while True:
fragment = f.readline()
if not fragment:
break
else:
print(fragment,end="")
###为文本文件每一行的末尾增加行号
with open("e.txt","r",encoding="utf-8") as f:
lines = f.readlines()
lines = [ line.rstrip()+" #"+str(index+1)+"\n" for index,line in
enumerate(lines)] #推导式生成列表
with open("e.txt","w",encoding="utf-8") as f:
f.writelines(lines)




执行程序后文件内容:
我 love u! #1
尚学堂 #2
百战程序员 #3

五、CSV文件的读取和写入

import csv
#header=["姓名","性别","年龄","工资"]
#row1=["博凡","女","24","10k"]
#rows=[("Jessica","女","31","100k"),("Krystal","女","26","100k"),("郑氏姐妹","女","28","200k")]
#with open ("csv_文件的读取和写入.csv","w",newline="") as f:#将newline=""可以减少写入csv文件时的空行
    #f_csv=csv.writer(f)#创建一个csv 对象,
    #f_csv.writerow(header)#写入一行数据,用writerow,但是需要写入的对象是列表
    #f_csv.writerow(row1)
    #f_csv.writerows(rows)#写入多行数据,用writerows,但是需要写入的对象是列表
with open("csv_文件的读取和写入.csv","r") as r:
    r_csv=csv.reader(r)#创建一个csv对象,它是包含所有数据的列表,每一行为一个元素
    header_r=next(r_csv)#获得列表对象;包含标题行的信息
    print(header_r)


    for row in r_csv:
        print(row)
        ```

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值