【python笔记】第十四节 文件操作
💕💕💕 博主昵称:摆烂阳💕💕💕
🥰博主主页跳转链接
👩💻博主研究方向:web渗透测试 、python编程
📃 博主寄语:希望本篇文章能给大家带来帮助,有不足的地方,希望友友们给予指导
文件操作
操作文件的步骤:
1. 打开文件
2. 对文件进行(读,写),保存
3. 关闭文件
一、打开
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 指要打开文件的名字 (准确说是路径,可写绝对路径,可写相对路径)
原始字符串:
让字符串不会被转义 ,字符串前面加个r print(r"\n") # 转义符不会再转义了,纯字符
建议:字符串里面存储的是 路径,正则表达式 通通使用原始字符串
路径
1、绝对路径
不易出错,唯一性
2、相对路径
… 表示上一级
/ 下一级
pycharm绝对路径快捷键:ctrl + shift + c
二、关闭
fileName = r"demo.txt"demo = open(fileName)content = demo.read() # 读取文件中的内容,它会将内容全部保存为一个字符串返回demo.close() # 关闭文件print(demo.read())
python提供了一个语法,可以自动帮忙关闭,再也不用手动了
with open …as 语句
with 会自动将文件关闭 自动执行f.close()
with open(fileName) as f:
content = f.read()
print(content)
三、读取
read() :读取全部内容
readline() : 读取一行内容
readlines() :读取每行行内容,放进列表
读取文件分为两种
1.纯文本文件(使用utf-8等编码编写的文本文件)
常见中文编码:utf-8,gbk,gb2312
2.二进制文件(图片、视频)
# 按行读取with open(fileName,encoding="utf-8") as f: print(f.readline(),end="") print(f.readline(),end="") print(f.readline(),end="") print(f.readline())
四、写入
r:只读 (不传,则是只读)
w:可写 ,表示覆盖,如果文件不存在会创建文件
a:可写 ,表示追加,如果文件不存在会创建文件
fileName = r"demo4.txt"# with 会自动将文件关闭 f.close()# 指定w模式,表示可写with open(fileName, "w", encoding="utf-8") as f: f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa") # 括号内需要传递一个字符串# a 表示追加,不会清空以前的内容with open(fileName, "a", encoding="utf-8") as f: f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa\n") # 括号内需要传递一个字符串 f.write("aa\n") # 括号内需要传递一个字符串
+:为操作符增加功能
r+:可读也可写
w+:可写也可读
a+:可写也可读
五、二进制文件
音乐,图片 二进制文件读取模式参数: t 读取文本文件(默认方式) b 读取二进制文件fileName = r"周杰伦 - 晴天.mp3"with open(fileName,"rb") as f: content = f.read() new_path = "qq.mp3" with open(new_path,"ab") as f2: # 将读取的数据写入到新的对象中 f2.write(content)
本章小结
本文是本人以前笔记,博主主页跳转链接
如果有哪里不对的话欢迎各位大佬指出问题,本人也是初学python,希望可以和各位朋友一起学习进步。点击跳转到博主python专栏:
如果有喜欢web安全的朋友,请在web渗透专栏中进行查看
点击跳转到博主web渗透专栏
来源地址:https://blog.csdn.net/qinshuoyang1/article/details/126721324
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341