大家好,我是郭立员~,本文所讲内容仅供学习参考,请勿非法使用。
python中读写文件很少用open命令,而是用with open命令,后者不需要用close关闭,同时在运行中报错也能安全关闭。
with open("1.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
上面代码中with open命令有3个参数:
1.txt 代表文件路径
r 代表打开模式是 读文件 是read的简写
encoding="utf-8" 代表文件编码是utf-8
其中打开模式是最重要的,有几个不同的模式:
r、w、a分别是read、write、append三个单词的缩写,代表读、写、追加。注意这里面“写”是覆盖写入。
读写文件基础用法的例子:
1. 读取文本
with open("1.txt", "r", encoding="utf-8") as f: content = f.read() print(content)
2. 按行读取文本,结果存入数组
with open("1.txt", "r", encoding="utf-8") as f: content = f.readlines() print(content)
输出结果:
['abc\n', '123\n', '456']
出最后一项外,其他数组内容结尾处都有\n,这里\n是换行的的意思。但是实际上我们并不需要读取结果中\n,所以需要使用strip()命令清除掉换行符。
with open("1.txt", "r", encoding="utf-8") as f: content = f.readlines() print(content) content = [line.strip() for line in content] print(content)
这里使用经典的列表推导式
content = [line.strip() for line in content]
先遍历数组content中的每一个元素,用line输出,然后line.strip()进行去除换行符,最后把结果用[]在存入数组。
等价写法:
lines = []for line in content: lines.append(line.strip())content = linesprint(content)
3.迭代读取,大文件按行读取,每次读取新一行内容
with open("1.txt", "r", encoding="utf-8") as f: content = f.readline() print(content) content = f.readline() print(content)
4. 写入文件
① 覆盖写入
with open("1.txt", "w", encoding="utf-8") as f: f.write("覆盖写入")
② 单次写入多行
with open("1.txt", "w", encoding="utf-8") as f: f.write("第一行\n") f.write("第二行\n") f.write("第三行")
5. 把数组内容按行写入到文本
lst = ["第一行", "第二行", "第三行"]withopen("1.txt", "w", encoding="utf-8") as f: lst = [line+"\n" for line in lst] f.writelines(lst)
数组内容需要在结尾处加上\n进行换行。
6. 追加内容,一般会在结尾加上\n换行
with open("1.txt", "a", encoding="utf-8") as f: f.write("这是追加的一行内容\n")
追加内容和写入内容用法上基本一致,就是不清空原有内容,在原有内容基础上加入新的内容。
以上就是常用的读写文件命令。