赞
踩
读写文件标准操作格式1:
1、打开文件:file1 = open('文件名','读写模式')
2、操作文件
3、关闭文件:file1.close()
文件操作完毕后必须关闭,否则长期保持对文件的连接状态,造成内存溢出的现象发生
读写文件操作格式2:
# 1、打开文件
file1 = open('demo.txt','w')
# 2、操作文件
file1.write('hello world')
# 3、关闭文件
file1.close()
1、打开文件:with open('文件名','读写模式')
2、操作文件
3、关闭文件:(自动关闭文件)
#1、打开文件
with open ('dmeo2.txt','w') as file1:
#2、操作文件
file1.write('hello python')
#3、关闭文件,用 with open是免关闭文件的
读写模式 | 功能 |
---|---|
r | 读取文件内容数据 |
w | 对文件进行数据写入 |
a | 对文件内容数据进行追加 |
文件不存在 | 文件存在 |
---|---|
( r ) 出现异常 | 读取文件内数据 |
(w) 自动创建新文件,并且写入内容数据 | 覆盖原文件内数据,重新写入 |
( a ) 自动创建新文件,并且写入内容数据 | 在原文件内容最后进行数据的追加,并不覆盖 |
文件不存在的情况下,新建文件,然后将内容写入:
with open('demo3.txt','w') as file:
file.write('hey')
文件存在的情况,里面的内容会进行一个覆盖:
with open('demo6.txt','w') as file:
file.write('hey-hey-hey')
文件不存在的情况下(新建了一个文件,将内容写入):
with open('d.txt','a') as file:
file.write('lll-lll-lll')
文件存在的情况下(在最后追加内容):
with open('d.txt','a') as file:
file.write('666-666-666')
文件存在的情况下:
with open('d.txt','r') as file:
data = file.read()
print(data)
文件不存在的情况下(不存在读模式):
完成复制 - 新建一个文件 - 把原来文件读取出来的内容写进新的文件
# 完成复制
file = open('d.txt','r')
data = file.read()
file.close()
# 新建一个文件
file1 = open('d1.txt','w')
file1.write(data) # 把 d.txt 文件里面的内容读出来,写进新的文件
file1.close()
因为比如 图片、视频,是由二进制组成的,也就是字节(byte) 组成的,而不是字符
读写模式 | 功能 |
---|---|
rb | 读取文件内容数据 |
wb | 对文件进行数据写入 |
ab | 对文件内容数据进行追加 |
文件不存在 | 文件存在 |
---|---|
(rb) 出现异常 | 读取文件内数据 |
(wb) 自动创建新文件,并且写入内容数据 | 覆盖原文件内数据,重新写入 |
(ab) 自动创建新文件,并且写入内容数据 | 在原文件内容最后进行数据的追加,并不覆盖 |
# 完成复制
file = open('zhao.jpg','rb')
data = file.read()
file.close()
# 新建一个文件
file1 = open('女友1号.jpg','wb')
file1.write(data)
file1.close()
# 完成复制
file = open('视频.wmv','rb')
data = file.read()
file.close()
# 新建一个文件
file1 = open('可以将原视频改名.mp4','wb')
file1.write(data)
file1.close()
读写模式 | 功能 |
---|---|
r+ | 基于 字符 单位的读写模式 |
w+ | 基于 字符 单位的读写模式 |
a+ | 基于 字符 单位的读写模式 |
rb+ | 基于 字节 单位的读写模式 |
wb+ | 基于 字节 单位的读写模式 |
ab+ | 基于 字节 单位的读写模式 |
加号,就是一个加强版的意思
字符模式 | 参数 |
---|---|
read() | 无 |
read() | 数字指定大小 |
readline() | 无 |
readlines() | 无 |
返回值 | 说明 |
---|---|
文件中全部字符数据 | 内存占用过大 |
文件中指定数量字符数量 | 取消结束标志,即读取到空字符 |
文件中一行字符数据 | 一行字符数据以结束符为 \n 描述 |
文件中所有字符数据成为一个列表,每一行字符数据都是一个元素 | 一行字符数据以结束符为 \n 描述 |
file = open('1.txt','r')
data = file.read()
print(data)
file.close()
如果说一个文件里面的内容太多了,read(),会将里面的内容一次性读取出来,负荷太大…
方式1:read(参数)
file = open('1.txt','r')
data = file.read(10) # 一次读取出来的大小,10个字符;空格也属于一个字符
print(data)
file.close()
可以选择循环读取,
file = open('1.txt','r')
while True:
data = file.read(3) # 一般情况下,这里的参数是 1024
print(data)
if len(data) == 0:
break
file.close()
方式2:readline() >>> 每次读取一行
file = open('1.txt','r')
while True:
data = file.readline()
print(data)
if len(data) == 0:
break
file.close()
方式3:文件中所有字符数据成为一个列表,每一行字符数据都是一个元素 >>> 第1行是列表里的第一个元素,第2行是列表里的第2个元素
file = open('1.txt','r')
data = file.readlines()
print(data)
file.close()
字符模式 | 参数 / 作用 |
---|---|
write | 字符串 / 将字符串内容写入文件 |
writelines | 仅包含字符信息的存储模式(列表、元组、集合、字典键)/ 将存储模型中的字符信息写入文件 |
# 1、打开文件
file = open('hello.txt','w')
# 2、操作文件
file.write('hello world')
# 3、关闭文件
file.close()
读:
file = open('hello.txt','r')
data = file.readlines()
print(data)
file.close()
# 1、打开文件,先读取
file = open('hello.txt','r')
data = file.readlines()
print(data)
file.close()
# 复制到一个新的文件中
file1 = open('hellohello.txt','w')
file1.writelines(data) # write >> 字符串
file1.close()
推荐: 字节模式 >> 字符模式
有个关于相对路径的表示法需要说明一下:
./../../ # 前面的点表示当前位置,后两个点表示上一级,再后面两个点表示上一级的上一级
./demo1/demo2/demo3/666.txt # 表示当前目录的下一级demo1的下一级demo2的下一级demo3中的文件 666.txt
所以,上面只需要写点点点,表示上一级 上一级;下面表示下一级下一级,就需要写具体的文件名了
函数名 | 说明 |
---|---|
rename(文件1,文件2) | 文件名更改,从文件1改为文件2 |
remove(文件名) | 删除文件 |
mkdir(目录名) | 创建目录 |
rmdir(目录名) | 删除目录 |
… | … |
import os
# 文件的改名 rename(文件1,文件2) 文件名更改,从文件1改为文件2
os.rename('demo1.txt','./../demo9.txt')
# 删除文件
os.remove('./../demo2.txt')
# 创建目录 mk >> make dir
os.mkdir('./../demo2')
# rmdir 删除目录
os.rmdir('./../demo2')
注意:删除文件 和 删除目录 是两个东西
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。