Python - 文件操作 - 笔记整理
目录
一、文件基本操作
1.1 简单读取
1.2 含义解释总结
1.2.1 文件路径
1.2.2 模式
1.2.3 encoding编码 gbk or utf-8
1.2.4 关闭链接
1.3 单行读取输出
1.4 w 写 write
1.4.1 基本操作
1.4.2 小练习
1.5 a 追加写入 append
二、读取图片
2.1 导入图片
2.2 读取图片
2.3 文件的复制
三、文件修改操作
3.1 更改姓氏
3.2 删除源文件
一、文件基本操作
说明:博主用的是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解忧堂视频整理而来,大家可自行搭配食用。
Python - 文件操作 - 笔记整理相关推荐
- python文件操作笔记
一.python中对文件.文件夹操作时经常用到的os模块和shutil模块常用方法.1.得到当前工作目录,即当前Python脚本工作的目录路径: os.getcwd()2.切换工作目录:os.chdi ...
- 【Python】学习笔记总结3(Python文件操作)
文章目录 三.Python文件操作 1.打开`open('文件名','打开模式')` 2.写操作 3.读操作 4.With上下文管理对象 小结 案例 5.文件定位 三.Python文件操作 1.打开o ...
- Python文件操作相关的知识笔记总结
python文件操作相关知识 1.文件操作 路径相关 上下文管理 文件的打开模式 文件操作的常见功能 学前知识背景回顾: 字符串类型(str):程序中表示文字信息,本质是unicode编码中的二进制. ...
- python学习笔记:python文件操作与异常处理
1.python文件操作:打开.关闭.读取.写入,合并excel等 1.1创建文件:open()函数打开文件,若文件存在则直接打开:若不存在则创建文件并打开 open('F:/pycodes/cunz ...
- 【Tools】python环境操作笔记
python环境操作笔记 1.安装Python虚拟环境 2.python pip 添加清华镜像 3.Ubuntu卸载python后出现系统崩溃以及各种问题的解决方法 4.Python下关于 tkint ...
- 关于python文件操作
关于python文件操作 总是记不住API.昨晚写的时候用到了这些,但是没记住,于是就索性整理一下吧: python中对文件.文件夹(文件操作函数)的操作需要涉及到os模块和shutil模块. 得到当 ...
- python基础操作笔记
python基础操作笔记 第二章 变量和简单的数据类型 #2.1输出数据hello world print('--------------------------------------------- ...
- python 文件操作 和 标准库
python 文件操作 一. 文件作用 二. 文件读写操作 文件操作流程 1. 读取文件数据 ⑴ 打开文件 ⑵ 读取文件内容 ⑶关闭文件 2. 写入或追加写入数据 ⑴ 打开文件 ⑵ 写入文件内容 ⑶关 ...
- Python基础——第八章:Python文件操作
前言 本文是根据黑马程序员Python教程所作之笔记,目的是为了方便我本人以及广大同学们查漏补缺. 不想做笔记直接来我的频道.当然啦,自己的笔记才是最好的哦! PS:感谢黑马程序员! 教程链接:黑马程 ...
最新文章
- 笔记本电脑u盘装linux系统,用U盘给Linux笔记本电脑重装Win7/XP系统的图文教程
- 3G,三足鼎立;花开千朵,各表一枝!!!
- Eclipse用法:自动生成get和set方法
- MySQL数据库的常用操作
- NumpyPandas的区别和联系
- android ble status,Android BLE peripheral disconnects with status code BLE_HCI_INSTANT_PASSED(0x28)
- JAVA入门级教学之(内存引用的例子)
- 让memcached和mysql更好的工作
- 吴裕雄--天生自然C语言开发:作用域规则
- 为什么很少人写类似金庸的武侠小说
- Java运行时常量池
- 平均值绝对偏差最大c语言,请教平均值和最大偏差值得使用
- JS设计模式之工厂模式
- 计算机基础---01入门篇(标点符号,快捷键,文件删除与恢复,软件安装与卸载,截图,电脑隐私,文件隐藏与搜索,文件压缩解压,qq邮箱格式)
- linux中rpm -q命令,Linux中的RPM
- 支付宝提现额度又降了...
- 为什么let this=that
- RestTemplate application/octet-stream处理
- 令人心酸的100个微瞬间 不信你不会被触动 别落泪哦
- Unity打包后的日志