持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第13天,点击查看活动详情
大家好,我是木大木大,因为疫情和环境原因啊,在家开始了自学python的路子,从此深坑加一人。后面我会每天持续更新一些学习python的过程,当然一开始就是一些基础啦,希望大家多多支持,莫嫌弃啦~
文件操作
文件——》file
操作文件步骤:
1.打开文件
2.对文件进行操作,保存
3.关闭文件
1.1 打开
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
绝对路径复制:CTRL+shift+c
绝对路径:通常指的是从盘符开始的完整路径
D:\小川\study\pythonproject\python68期_Text\day15\demo.txt
相对路径:通常使用"."或者".."开头
"./" 表示当前文件所在的目录,可以省略不写
"../"表示当前目录的上一级目录
"../../"表示上上级目录
"/"开头的代表根目录
相对路径:../day15/demo.txt
路径前面加一个r作用是规避转义字符
1.2 关闭
with open...as 语句
with open(fileName) as f:
print(f.read())
f只能在with内部使用,with结束了就自动close关闭掉了
1.3 读取
fileName = 'demo.txt'
with open(fileName) as f:
content = f.read()
print(content)
open打开文件默认以文本文件形式打开
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8') as f:
content = f.read()
print(content)
如果读取完了文件,再去读取会返回一个空字符串
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8') as f:
content = f.read(4)
content = f.read(4)
content = f.read(4)
content = f.read(4)
print(content)
# 读取大文件方式
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8') as f:
c = 2
while 1:
content=f.read(c)
if content=="":
break
print(content,end="")
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8') as f:
all_content = ""
c = 2
while 1:
content=f.read(c)
if content=="":
break
all_content+=content
print(all_content)
读取一行 readline
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8')as f:
print(f.readline(),end="") # 读取一行
print(f.readline(),end="") # 读取一行
print(f.readline(),end="") # 读取一行
print(f.readline()) # 读取一行
fileName = 'demo2.txt'
with open(fileName,encoding='utf-8')as f:
l = f.readlines() # 一行一行读取内容,一次性读完存到一个列表里面
print(l[1:3]) # ['世界\n', '我是\n']
1.4 写入
write() 括号内部需要传递一个字符串
有返回值,返回的是你写入的字符串长度
r 只读
w 可写,会默认覆盖文件,如果文件不存在则会创建文件
a 追加,如果文件不存在则会创建文件
fileName = 'demo3.txt'
with open(fileName,'w',encoding='utf-8')as f:
f.write("你好世界\n")
f.write("你好世界\n")
f.write("你好世界\n")
f.write("你好世界")
fileName = 'demo3.txt'
with open(fileName,'a',encoding='utf-8')as f:
f.write("你好世界")
f.write("你好世界")
1.5 二进制文件
所有的文本文件之外的都叫做二进制文件
t 读取文本文件
b 读取二进制文件
fileName = r'C:\Users\EDY\Desktop\陈奕迅 - 不要说话.mp3'
with open(fileName,'rb')as f: # 读取
new_path = 'qq.mp3'
with open(new_path,'wb')as new_f: # 写入新文件
c = 1024*100
while 1:
content = f.read(c)
if not content:
break
new_f.write(content)
fileName = r'C:\Users\EDY\Desktop\陈奕迅 - 不要说话.mp3'
with open(fileName,'rb')as f: # 读取
new_path = 'qq.mp3'
with open(new_path,'ab')as new_f: # 写入新文件
c = 1024*100
while 1:
content = f.read(c)
if not content:
break
new_f.write(content)
打开模式
| 打开模式 | 效果 |
|---|---|
| r | 以读方式打开,文件必须存在 |
| w | 以写方式打开,文件不存在则创建,存在清空原有内容 |
| a | 以追加模式打开,文件不存在则创建,存在则继续进行写操作 |
| r+ | 以读写模式打开 文件必须存在 |
| w+ | 以读写模式打开文件,不存在则创建,存在清空原有内容 |
| a+ | 追加并可读模式,文件不存在则创建,存在则继续进行写操作 |
| rb | 以二进制读模式打开 同r |
| wb | 以二进制写模式打开 同w |
| ab | 以二进制追加模式打开 同a |
| rb+ | 以二进制读写模式打开 同r+ |
| wb+ | 以二进制读写模式打开 同w+ |
| ab+ | 以二进制读写模式打开 同a+ |