目录
一、文件基本操作
说明:博主用的是pycharm,大家在观看时根据自己情况做适当调整
1.1 简单读取
新建一个项目-文件操作 - 新建两个文件 - 文本.txt 和 01.py - 文本可随意填写一些内容
1.找到这个01.py文件,双击打开它,编写以下代码:
f = open("文本.txt", mode="r", encoding="utf-8")
content = f.read()
print(content)
2.将会输出文本.txt中的内容
1.2 含义解释总结
open("文件路径",mode=" ",encoding=" ")
1.2.1 文件路径
1.绝对路径(一般不用)
d:/test/xxxx.txt
2.相对路径
相对于当前你的程序所处文件夹
若和程序在一个文件夹: open("文本.txt")
不在一个文件夹: open("../文本.txt") ../ 上一层文件夹
open(../文件夹名字大/文件夹名字小/文件.txt")
1.2.2 模式
r: read 读取
w: write 写
a: append 追加写入
写入文件时,如果文件不存在,将自动创建一个文件
w模式下,每一次open都会清空文件中的内容
1.2.3 encoding编码
gbk or utf-8
1.2.4 关闭链接
f.close() # 每次操作后要习惯关闭链接
with as 也可以替代显性close
with 上下文,不需要手动关闭文件
import os 和操作系统相关的模块
1.3 单行读取输出
假设文本.txt内容为:
两只老虎
两只老虎
跑的快,跑的快
f = open("文本.txt", mode="r", encoding="utf-8")
line = f.readline()
print(line)
line = f.readline()
print(line)
line = f.readline()
print(line)
>>>两只老虎
>>>
>>>两只老虎
>>>
>>>跑的快
可以发现文本中间有空格,那么怎么删掉它不让其出现呢?
在这里为了简洁我就简写为一段代码了
line = f.readline().strip()
print(line) # 去掉字符串左右两端的空白,空格,换行,制表符
如果文本中有几百行文字,那么这种方法显然是行不通的,这时我们很自然的会想到循环:
for line in f:
print(line.strip())
1.4 w 写 write
1.4.1 基本操作
f = open("text.txt", mode="w", encoding="utf-8")
f.write("qqgg77")
f.close()
正像我前文提到的一样,如果没有text.txt文件,将自动创建一个文件
打开此文件,你会发现里面有你刚写下的内容
1.4.2 小练习
准备一个列表,要求把列表中的每一项内容,写入文件中
list = ["火锅","烧烤","奶茶"]
f = open("美食.txt",mode="w", encoding="utf-8")
f.write(list[0])
f.write(list[1])
f.write(list[2])
f.close()
在这里,我没加制表符,输出为 火锅烧烤奶茶,加制表符如下:
除此之外,大家可以尝试使用with as 和循环来解决这道题
list = ["火锅", "烧烤", "奶茶"]
with open("美食.txt", mode="w", encoding="utf-8") as f:
for item in list:
f.write(item)
f.write("\n")
1.5 a 追加写入 append
f = open("美食.txt", mode="a", encoding="utf-8")
f.write("不能割舍的美食")
二、读取图片
2.1 导入图片
如何将图片导入pycharm中的文件夹呢?
首先在电脑中找到pycharm中的文件夹,在这里也就是文件操作;接着,将所选图片放到这个文件夹里(记得后缀为.jpg);这时在回到pycharm中使,会发现图片已经被放进去了。
2.2 读取图片
with open("马卡龙.jpg", mode="rb") as f:
for line in f:
print(line)
2.3 文件的复制
从源文件中读取内容,写到新路径去。
with open("马卡龙.jpg", mode="rb") as f1, open("../函数/好吃.jpg", mode="wb) as f2:
for line in f1:
f2.write(line)
说明:
1.此时在上一文件夹函数中会出现一个好吃.jpg
2.如果觉得代码太长,看着不方便,可以在open前按空格,pycharm会自动加上一个 \ ,如果没有这个会出错,\ 的意思是上下这两行属于同一个代码。
三、文件修改操作
3.1 更改姓氏
首先用更改姓氏来演示文件修改操作,创建一个文件 - 人名.txt,里面有:张三,李四,王五,周天天;那么,如何将周换成张?
with open("人名.txt", mode="r", encoding="utf-8") as f1, \
open("人名最终版.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")
3.2 删除源文件
import os
os.remove("")
os.rename("","")
里面内容我就不填了,就是文件名字,想看到过程的话可以引用time模块,sleep休眠3秒
1.从源文件读取内容
2.在内存中进行调整
3.把修改后的内容写入新文件
4.删除源文件,将新文件重命名成源文件
此篇笔记是根据b站 Python解忧堂视频整理而来,大家可自行搭配食用。