Python学习 21 - 文件处理

本文详细介绍了Python中文件处理的基本步骤,包括打开、读取、写入和追加操作。讲解了不同模式如'r'(只读)、'w'(只写)、'a'(追加)的用法,以及使用with语句自动管理文件句柄的方法。此外,还展示了如何修改已有文件内容和处理多个文件。
摘要由CSDN通过智能技术生成

一、文件处理的简单步骤

        1、打开文件 得到文件得句柄 并赋值给一个变量。使用open命令

f = open('文件名',encoding='utf-8') 

                相同目录可以使用 相对路径 不同文件夹需要 绝对路径

                encoding='utf-8' 这里需要看文件时什么方式存储得 ,win系统默认时gbk,python默认时 utf-8

                open 默认使用操作系统得编码 去解码文件

                这里 f 就是句柄,程序函数open

        2、通过句柄对文件进行操作

data = f.read()

                读取句柄中的信息并赋值给data这个变量

        3、关闭文件

f.close 

        关闭句柄 释放系统资源

二、读

r

只读(r) read 读取出来得全部都是str数据

f = open('文件名','r',encoding='utf-8') 

这里的文件名 是代指需要开启的文件名称

参数   ' r ' 代表是只读的意思

print(f.readable())

#返回布尔值 验证f是都可读

print(f.readline())

#每次读一行,从上一次读到得下一行开始读,如果没有下一行了则返回空

data = f.readlines()

读取所有行 换行得符号也会被显示出来

三、写

w

只写(w) 写入得必须是str不能是int类型

f = open('文件名','w',encoding = 'utf-8')

这里的 ‘ w ’ 参数就是文件只写的意思

只写模式,w模式下,如果文件存在,则会清空这个文件

如果文件不存在,程序会新建一个文件

也就是说不管如何 w 都会新建一个文件去覆盖原来得

f.write('12313\n')

#写入字符串并换行

f.writeable()

#判断是否可写

f.writelines(['12313\n','1qwe\n'])

#这里得参数必须是str不能是int,同时写入两行

f.close()

释放句柄

四、只追加

a

只追加(a)#也是一种写入得模式只不过是追加得写入 如果文件不存在则创建一个新的文件

f = open('文件名','a',encoding = 'utf-8')
f.write('12313\n')

#“12313”这行文字将出现在文档最后

r+  用可读写方式打开一个文件 指针放在文件开头

w+  用可读写的方式打开一个文件,指针放在开头,源文件内容会被删除,如果没有这个文件则创一个

a+ 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

有一种不需要手工打命令释放句柄的程序格式

with open ('nnn.txt', 'w', encoding='utf-8') as xx:
    xx.write('1265aasd\n')

as就是赋值给xx这个变量得赋值符号

注意这个命令的格式,在第一行 冒号后面 换行之后 要缩进

xx就是句柄的 变量名 这个操作不需要释放句柄

也就是不需要 xx.close() 这个命令

这个命令还可以同时打开多个文件

with open ('nnn.txt', 'w', encoding='utf-8') as xx,\
        open ('nnn1.txt', 'w', encoding='utf-8') as xx1:
    xx.write('1265aasd\n')

\ 斜杠是截断符号 在这个位置可以把过长的命令进行换行操作

修改源文件的例子

# 修改源文件
yuanWenJian = open('xxn', 'r', encoding='utf-8')  # 使用utf-8解码,以只读得方式打开一个名为xxn得文件,并且赋值给yuanWenJian变量
linShi = yuanWenJian.readlines()  # 读取yuanWenJian变量内部得str信息并且赋值给linShi这个变量
yuanWenJian.close()  # 释放这个句柄
print(linShi)
xinWenJian = open('xxn', 'w', encoding='utf-8')  # 使用utf-8编码,以只写得方式新建一个名为xxn得文件,并且赋值给xinWenJian变量
xinWenJian.write(linShi[0])  # 把linShi变量中得 第一位元素写入xinWenJian文件中
#  如果使用 writelines 而且后面没有跟参数 则直接把所有得数据 又写回去了
xinWenJian.close()  # 释放这个句柄

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值