一、文件处理的简单步骤
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() # 释放这个句柄