文件操作
操作文件的步骤:
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)