Python入门——文件操作

本文详细介绍了Python中文件编码的重要性,以及文件操作的基本方法,包括文件的打开、读取、写入和追加,还提供了文件操作的综合案例,如读取文件、备份并丢弃测试数据行。
摘要由CSDN通过智能技术生成

目录

1.文件编码

2.文件操作

(1)文件操作的相关方法

 (2)文件的打开

(3)文件的读取

(4)文件的写入

(5)文件的追加

3.文件操作综合案例

1.文件编码

文件编码——翻译的规则,UTF-8 是全球通用的编码格式,除有特殊需求,一般都用 UTF-8 格式

计算机只认识“0 和 1”,使用编码技术(密码本)将内容翻译成 0 和 1 存入

2.文件操作

文件基础操作的三个步骤:

打开文件:open(name,mode,encoding)

读写文件:read()

关闭文件:close()

(1)文件操作的相关方法

操作功能备注
文件对象 = open(file, mode, encoding)打开文件获得文件对象
文件对象 .read(num)

读取指定长度字节
不指定 num 读取文件全部

多次使用read,下一个read会从上一次读到的结尾处,接着去读取
文件对象 .readline()读取一行
文件对象 .readlines()读取全部行,得到列表
for line in 文件对象for 循环文件行,一次循环得到一行数据
文件对象 .close()关闭文件对象文件读取完成后,要关
闭文件对象,否则文件会被一直占用
 
with open() as f通过 with open 语法打开文件,可以自动关闭

 (2)文件的打开

open(name,mode,encoding)

name :文件所在的具体路径   或    目标文件名(文件要与python代码在同一层级)
mode :设置打开文件的访问模式  :只读(r)、写入(w)、追加(a)等。
encoding: 编码格式(推荐使用 UTF-8 )

模式描述
r

以只读方式打开文件。

文件的指针将会放在文件的开头。默认模式。

w

打开一个文件只用于写入。

如果该文件已存在则打开文件,并从开头开始编辑,原有内容会被删除
如果该文件不存在创建新文件

a

打开一个文件用于追加。

①如果该文件已存在新的内容将会被写入到已有内容之后
②如果该文件不存在创建新文件进行写入。

(3)文件的读取

f = open("D:/poem.txt","r",encoding="UTF-8")
new_f = f.read()
count = new_f.count("up")
print(count)

f.close()#记得关闭文件

(ps:注意:此时的`f是`open`函数的文件对象,对象是Python中一种特殊的数据类型,拥有属性和方法。可以使用对象.属性对象.方法对其进行访问. 

(4)文件的写入

#打开文件
f = open("D:/poem.txt","w",encoding="UTF-8")
#文件写入(直接调用 write ,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区)
f.write("to make everyday count!")
#刷新内容到硬盘中(当调用 flush 的时候,内容会真正写入文件)
f.flush()

注意事项:

使用” w” 模式时:

• 文件不存在,会创建新文件
• 文件存在,会将原有内容全部清空

close() 方法,带有 flush() 方法的功能

(5)文件的追加

#打开文件
f = open("D:/diary.txt","a",encoding="UTF-8")
#文件写入(直接调用 write ,内容并未真正写入文件,而是会积攒在程序的内存中,称之为缓冲区)
f.write("\nToday is also a beautiful day!")#追加内容会接在原有内容之后,最好是带有换行符号\n
#关闭文件,文件对象.close自带flush刷新功能
f.close()

注意事项:

使用”a” 模式时:

• 文件不存在,会创建新文件
• 文件存在,会在最后追加写入文件

3.文件操作综合案例

要求:
 读取文件
 将文件写出到 bill.txt.bak 文件作为备份
 同时,将文件内标记为测试的数据行丢弃

'''
实现思路:
open 和 r 模式打开一个文件对象,并读取文件
open 和 w 模式打开另一个文件对象,用于文件写出
for 循环内容,判断是否是测试不是测试就 write 写出,是测试就 continue 跳过
一些小细节:
字符串.strip()用来出去每行的首尾空格和换行符
字符串.split(分隔符字符串),但字符串本身不变,但得到了一个列表对象,故不能写成
line = line.split(",")
line[4] =="测试"
文件写入的write()只能是字符串
'''

#打开文件
f1 = open("D:/bill.txt","r",encoding = "UTF-8")
f2 = open("D:/bill.txt.bak","w",encoding = "UTF-8")
#判断是否为丢弃数据
for line in f1:
    line =line.strip()  #移除首尾的空格和换行符
    if line.split(",")[4] =="测试":   #字符串 .split(分隔符字符串),但字符串本身不变,而是得到了一个列表对象
        continue

    f2.write(line)
    f2.write("\n")
#关闭文件
f1.close()
f2.close()
  • 24
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值