Python对文件读写操作

  • 文件读操作

1、一次性读取所有 “r”

f = open("yesterday", "r", encoding="utf-8") 
data = f.read()
print(data)

备注:读取文件,光标会移动到读取的对应位置

2、一行一行的读取 readline()

读取该文件的前五行
# 方法1
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
print(f.readline())
print(f.readline())
print(f.readline())
print(f.readline())
print(f.readline())    # 此时光标移动到第五行末的位置

# 方法2
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
for i in range(5):
    print(f.readline())

3、获取文件所有行的内容 readlines()

"""循环文件,第10行的时候不打印"""

#low loop
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
print(f.readlines())   # 这里得到的是一个列表

for index, line in enumerate(f.readlines()):
    if index == 9:
        print("-----我是分割线-----")
    else:
        print(line.strip())
 
# high loop
count = 0
f = open("yesterday", "r", encoding="utf-8")  # 获取文件句柄
for line in f:
    if count == 9:
        print("-----我是分割线-----")
        count += 1
        continue
    print(line)
    count += 1

4、读写 “r+” 这是以读和追加的方式去操作文件

f = open("yesterday", "r+", encoding="utf-8")
print(f.readline())
print(f.readline())
print(f.readline())
f.write('----------diao-----------')
print(f.readline())

# 输出结果:打印yesterday文件的前四行,新写入的内容追加到文件的最后面
  • 文件写操作

1、写入操作,有同名文件就覆盖,没有则新建一个文件 “w”

f = open("yesterday2", "w", encoding="utf-8")  # 获取文件句柄

f.write("我爱北京,\n")
f.write("天安门上太阳升,\n")

2、写读操作 “w+”

会先按照文件名创建(覆盖)文件,然后进行操作

f = open("yesterday", "w+", encoding="utf-8")
f.write('----------diao-----------1')
f.write('----------diao-----------2')
f.write('----------diao-----------3')
f.tell()
f.seek(10)
f.tell() 
print(f.readline())
f.write('我爱北京天安门!')
  • 文件追加操作

1、单独追加写操作 “a”

f = open("yesterday2", "a", encoding="utf-8")  #获取文件句柄
f.write('我爱北京天安门。。。\n')
f.write('天安门前红旗升\n')  # 会将内容追加写入到文件最后
f.close()

2、追加读写操作 “a+”

1、追加读操作

f = open("datetime模副本.py", "a+", encoding="utf-8")  #获取文件句柄  光标此时在文件末尾  文本的原始长度为1142
print(f.tell())   #>>>1142
print(f.seek(0))  #将光标返回到文件其实位置
print(f.readline())  #打印文件的第一行内容

2、追加写操作 类似 “a”

f = open("datetime模副本.py", "a+", encoding="utf-8")  #获取文件句柄 光标此时在文件末尾
f.write('我是追加的内容,在增加在文件末尾!!!!')  #新增的内容长度为60
print(f.tell())  # >>>1202
  • 二进制格式操作文件

1、二进制读文件 “rb”

# 可以读取大部分任意格式文件 以二进制方式进行读取
f = open("cat.jpg", "rb")  # 这里括号中的编码格式encoding="utf-8需要去掉
print(f.read())

2、二进制写文件 “wb”

f = open("xixi", "wb")  # 这里括号中的编码格式encoding="utf-8需要去掉
f.write('hello binary\n'.encode())
f.close()
  • 修改文件

f = open('yesterday2','r',encoding='utf-8')
f_new = open('yesterday2.bak','w',encoding='utf-8')

for line in f:
	if '肆意的快乐等着我去享受' in line:
		line = line.replace('肆意的快乐等着我去享受','肆意的快乐等着陈柏霖去享受')
	f_new.write(line)

f.close()
f_new.close()

你可能感兴趣的:(Python)