读取文件
- 找到这个文件,双击打开它
open(文件路径,mode=" “,encoding=” ")
文件路径
1.绝对路径
eg:d:/test/****.txt
这种方式不安全,涉及到项目迁移,项目部署时,这种方法会出现错误
2.相对路径
相对于当前程序所在的文件夹
需要注意"…/"表示的是返回上一级文件夹
模式:
mode
r:read 读取
# @FileName: Readfile.py 读取文件
# @Time : 2023/9/13 17:34
# @Author : Yuan
f = open("read.txt", mode="r", encoding="utf-8")
# content = f.read() #全部读取
# print(content)
# # 一行一行读取
# line = f.readline()
# print(line)
# # line = f.readline().strip() 这样写之后打印出来没有空行
# line = f.readline()
# print(line)
#
# line = f.readline()
# print(line)
# content = f.readlines() # 一次性全都读出来存入一个列表中
# print(content)
# 最重要的一种读取方式
for line in f: #从f中读取每一行数据
print(line.strip())
写入文件
mode
w: write 写入
# # 写入文件
# # w模式下,若文件不存在,则直接自动创建
# # w模式下,每一次open都会清空掉文件中的内容
# f = open('read.txt', mode="w", encoding="utf-8")
# f.write("keyi ")
# f.close()
# 准备一个列表,将列表中的每一项内容,写入到文件中
lst = ['科一', '科二', '科三', '科四']
f = open('read.txt', mode="w", encoding="utf-8")
# f.write(lst[0]+"\n")
# f.write(lst[1]+"\n")
# f.write(lst[2]+"\n")
# f.write(lst[3]+"\n")
for item in lst:
f.write(item)
f.write("\n")
f.close()
a:append 追加写入
# a模式,追加模式,在原来的基础上写入
f = open('read.txt', mode="a", encoding="utf-8")
f.write("全过!")
f.close()
with语句(上下文)
使用with之后,不用写文件的关闭语句,文件自动关闭。
#with
with open('read.txt', mode="r", encoding="utf-8") as f:
for line in f:
print(line.strip())
mode
b:读写的是非文本文件,音频,图像等。
# 想要读取图片
# 在读写非文本文件的时候要加上b,读取出来是字节,不能进行编码
with open("头像.jpg", mode="rb") as f:
for line in f:
print(line)
文件的复制
# 文件的复制
# 从源文件中读取内容,写入到新路径去
with open("头像.jpg",mode="rb") as f1, \
open("LeetCode/头像2.jpg", mode="wb") as f2:
for line in f1:
f2.write(line)
文件的修改
import os # 和操作系统相关的模块引入
import time # 和时间相关的模块
# 文件的修改
# 把文件中的科改成张
with open('read.txt', mode="r", encoding="utf-8") as f1,\
open('read_副本.txt', mode="w", encoding="utf-8") as f2 :
for line in f1:
line=line.strip() # 去掉换行
if line.startswith("科"):
line=line.replace("科", "张") # 修改
f2.write(line)
f2.write("\n")
time.sleep(3) # 让程序休眠三秒钟
# 删除原文件
os.remove("read.txt")
time.sleep(3)
# 把副本文件命名为源文件
os.rename ("read_副本.txt", "read.txt")