3. 文件操作概述及操作过程
文件作用:进行持久化存储数据
操作过程:
双击打开
点叉关闭
程序操作文件的过程:
打开-> 设置打开的模式,(读写) open(打开文件路径,打开模式)
操作文件(读取)
关闭-> close()
4. 文件的访问模式
读取:
文本形式
程序文件
.txt 文件
.rtf 文件
二进制形式
音频文件
视频文件
图片文件
写入:
文本形式
程序文件
.txt 文件
.rtf 文件
二进制形式
音频文件
视频文件
图片文件
以文本方式打开方式的模式
r -> rt -> read text 以文本方式打开文件读,文件存在,打开成功,文件不存在,打开失败
w -> wt -> write text 以文本方式打开文件写,不管文件是否存在,都会新创建一个新文件
a -> at -> append text 以文件方式打开文件追加,文件不存在,创建文件,文件存在,那么打开文件然后将光标移动到文件的最后
以二进制形式打开文件的模式
rb 以二进制形式打开文件读取
wb 以二进制形式打开文件写入
ab 以二进制形式打开文件追加
(了解)
r+ 这三种模式都具有读取写入功能
w+
a+
5. 文件的读取
read()
6. 文件读取的几种方式
read() # 一次性将整个文件内容读取出来,不适合大文件读取
read(size) # 掌握 读取指定的字节数的文件内容 ,如果文件最后没有内容了,那么read的返回值是空字符串 , "" 一般指定4096
readline() # 读取一行
readlines() # 一次性将整个文件内的内容以行的形式读取出来,放到一个列表中
7. 文件的写入
write(content) 该函数用来向文件中写入数据
前提: 使用该函数时,打开文件时,必须要给定写入权限,要具有写入模式
8. 常用文件和文件夹操作
os 模块
rename()
remove()
mkdir()
getcwd()
chdir()
listdir() 掌握
rmdir()
9. 批量修改文件名后复制文件
重点注意:
翻车点:
当以二进制模式打开文件进行文件操作时.
read 函数最终读取文件内容为空时,返回的结果为 b''
表示是一个二进制的空字符串
在 Python2.7版本中. '' == b'' 结果为True
在 Python3.6版本中. '' == b'' 结果为False
- 文件的一些操作方式
'''
文件操作
'''
#打开文件,以写模式
# file = open('a.txt','w')
file = open('a.txt','rt')
#
# #读取文件内容
# #默认读取全部文件内容
# #但是这种方式,只适用于文件较小的情况
# #如果文件比较大,不建议这样读取
# # content = file.read()
# '''
# 输出内容:
# hello
# python
# world
# '''
#
#在读取数据时,指定读取一部分,不指定大小默认全部读完
# content = file.read()
# print(content) #hello
#
#读取多行文件的方式
# while True:
# #读取
# content = file.read(4096) #一般指定size=4096
# #如果在文件读取时,读取的结果为空串,说明文件读取完毕
# #根据这个条件,可以设置读取文件的结束条件
# if content == '':
# break
# print(content,end="")
#关闭文件
file.close()
'''
文件其它读取方式
'''
# #打开文件
# file = open('a.txt','r')
#以行读取文件 readline(),换行符也会被读进来,算作一行
# while True:
# content = file.readline()
# if content=="":
# break
# print(content)
#以行的方式读取整个文件 readlines(),形成的是一个列表
# content_list = file.readlines()
# print(content_list)
#['hello\n', 'python\n', 'world']
# for line in content_list:
# print(line)
#关闭文件
# file.close()
'''
文件的其他操作
os模块
rename()
remove()
mkdir()
getcwd()
chdir()
listdir()
rmdir()
'''
#导入os模块
import os
#rename() 重命名
# os.rename('a.txt', 'a.txt')
#mkdir() 创建目录
#如果当前目录存在,会报错
# os.mkdir('text_dir')
#getcwd() 获取当前工作目录
# cwd = os.getcwd()
# print(cwd)
#listdir() 获取当前目录下的文件列表
#一个'.'是当前目录,两个'.'是上级目录
# file_list = os.listdir('.')
# print(file_list)
#chdir() 改变当前目录到指定的路径上去
# os.chdir('C:\\Users\\KG\\Desktop')
# print(os.getcwd())
# print(os.listdir('.'))
#remove() 删除一个文件,里面填的是文件的路径
# os.remove('aaa.txt')
#rmdir() 删除一个文件夹
#当目录不为空,不能删除
# os.rmdir('ggg')
- 文件练习实例——复制一个文件
'''
实现一个复制命令
'''
#导入一个模块
import sys
def file_copy(src,dst):
#以读取的方式 打开源文件
file_r = open(src,'r')
#以写的方式打开目标文件
file_w = open(dst,'w')
'''
拷贝二进制文件版本
#以读取的方式 打开源文件
file_r = open(src,'rb')
#以写的方式打开目标文件
file_w = open(dst,'wb')
'''
#循环
while True:
#读取文件内容
content = file_r.read(1024)
#将读取的文件内容写入另一个文件中
if content == '':
print("文件拷贝成功")
break
'''
判断二进制文件读完
if content == b':
print("文件拷贝成功")
break
'''
#写入文件
file_w.write(content)
#关闭文件
file_r.close()
file_w.close()
print(sys.argv)
#在当前目录下输入python3 运行xxx.py文件
#导入sys模块之后,运行的时候可以在后面加上我们
#准备复制源文件和目标文件的名字
src = sys.argv[1] #源文件
dst = sys.argv[2] #目标文件
file_copy(src,dst)