这里简单介绍基础的文件操作,基础的文件夹操作见:https://blog.csdn.net/zhouchen1998/article/details/81503819
对文件的操作对于数据的永久存储起着至关重要的作用。
文件的操作主要分为写入和读取。
但是无论哪种操作都要先建立文件流也就是要找到或者打开文件。
一般而言,写法如下:
f = open('filename', 'mode', encoding='utf-8')
分别是文件路径, 打开模式, 编码方式
文件路径:要么只给出文件名.后缀名,这种方式认为相对路径,也就是当前工作目录下的文件,没有则创建该文件;要么给出具体盘符文件夹文件名.后缀名,这种方式认为绝对路径,也就是指定位置的文件,没有则创建。
打开模式:主要有一下几种模式:
r: 以只读方式打开,不可以修改
w:以写入方式打开,会清空原来内容,写入新的内容
x:以创建方式打开,文件已经存在会报错
a:以追加方式打开,会在文件最后添加内容
b:以二进制方式写入
t:以文本方式打开
+:以可读写方式打开
可以组合:如'wb'
编码方式:不指定有默认编码方式
1.写入
两种写法:
第一种(这种写法最后必须关闭文件)
f = open(r"test.txt", 'w', encoding='utf-8')
f.write("hello world"+"\n")
l = ["i", "love", "python"]
f.writelines(l)
f.close()
第二种 (推荐这种写法,不需要关闭文件)
with open(r"test.txt", 'w', encoding='utf-8') as f:
f.write("hello world"+"\n")
l = ["i", "love", "python"]
f.writelines(l)
2.读取
两种写法:
第一种(与上面类似,不推荐)
第二种(推荐写法)
# 按行读取内容
with open(r"test.txt", 'r') as f:
strline = f.readline()
while strline:
print(strline)
strline = f.readline()
# 按行迭代
with open(r"test.txt", 'r') as f:
l = list(f)
for i in l:
print(i)
# 字符读取,可偏移
with open(r"test.txt", 'r') as f:
strchar = f.read()
print(strchar)
# 从某个位置向后偏移若干字节,而read的单位是字符数
with open(r"test.txt", 'r') as f:
f.seek(4, 0)
strchar = f.read()
print(strchar)