文件操作
一些概念
- 对文件的常见操作:打开文件、读取、写入、追加
- 文件对象:用于接收文件数据的一种python数据类型,内置了一些常用方法;
- read:读取指定长度内容字符串,不传为全部;
- readlines:读取文件每行以
列表[]
形式返回; - readline:读取指针目前所在行;
- write:覆盖写入文件内容
- 注意:在文件相关操作中,应注意每行末尾的
\n
换行符;
常见操作示例
1、打开文件
- 文件路径:相对路径、绝对路径,如:
D:/projects/my-python/1.js
- mode:‘r’:代表只读,‘w’:覆盖写入,‘a’:追加
open('文件路径', mode, encoding='utf-8')
with open('文件路径', mode, encoding='utf-8') as f:
2、读取文件:当前目录下的1.js
// 内容
function a(){}
- mode模式:使用
'r'
,代表文件只读 - 读取文件方式1:需要手动关闭文件对象
- 内置打开文件方法:
open
- 内置打开文件方法:
f = open('1.js', 'r', encoding='utf-8')
# 获取指定长度内容字符串,不传为全部
content = f.read(8)
print(content) # function
# 读取剩余文件中每行并存储到列表[]lines中
lines = f.readlines()
print(lines) # [' a(){}\n']
print(len(lines)) # 1
# 文件操作:关闭
f.close()
- 读取文件方式2:操作完自动解除对文件的占用
- 内置打开文件方法:
with open() as f:
- 内置打开文件方法:
# 文件操作:
with open('1.js', 'r', encoding='utf-8') as fr:
# 直接循环文件对象获取每行
for line in f:
# 去掉开头结尾的空格与换行符
# line = line.strip()
words = line.split(" ")
print(line)
print(words)
# 结果:
// 内容
['//', '内容\n']
function a(){}
['function', 'a(){}\n']
# strip()处理后结果:
// 内容
['//', '内容']
function a(){}
['function', 'a(){}']
3、写入文件
- mode模式:使用
'w'
,代表向打开文件中写入,如打开的文件不存在则新建文件写入; - 常用方法:
- write(‘val’):写入内容
- flush():刷新文件
- close():关闭文件,自带flush
# 这种方式自动关闭,不用刷新与关闭
with open('./1.js', 'w', encoding='utf-8') as fw:
f.write('覆盖原有内容。\n')
f.write('第二行。')
3、写入文件
- mode模式:使用
'a'
,代表向打开文件中追加; - 常用方法:同2
# 这种方式自动关闭,不用刷新与关闭
with open('./1.js', 'a', encoding='utf-8') as fa:
f.write('\n第三行。')
- 最终文件内容:
覆盖原有内容。
第二行。
第三行。