一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第10天
文件操作
系统的函数:open()
基础概念
上图所对应的操作都是对于用户而言的
- 读入,下载(in)
- 上床,写入(out)
- 因为银盘(网盘)的读写速度太慢,所以我们才使用了内存(缓存)这种操作来提升文件读写速度
读取文件
open(r'E:\图片') #这里的r是为了防止转义的
我们在对文件进行操作时通常要先打开文件,而在这里open函数就是对一个文件进行打开,这个操作会返回一个流(stream)可以大概地理解为流就是把你所使用的编译器和文件所在的地方之间架起了一个管道
- 打开文件我们用变量来接受流
stream = opean(r'E:\图片\牛.jpg')
result = stream.read()
result = stream.readable()
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
line = stream.readline()
line = stream.readlines()
stream.close() #释放资源
| 操作 | 意义 |
|---|---|
| read() | 将内容全部读出 |
| readable | 判断内容是否可读 |
| readline | 读取其中的一行 |
| readlines | 读取其中的行(返回的是一行行内容在一个列表中) |
- 注意:我们在这里读取图片时我们得将mod换成“rb”来进行读取,而mod的默认值是读txt文件(“rt”)
追加和写入
- 打开文件
stream = open(r'E:\图片','w') # w表示覆盖写
stream.write('内容')
stream.writable()
stream.writelines(Iterable) #Iterable : ['内容1\n','内容2\n']
stream.close() #释放资源
| 操作 | 意义 |
|---|---|
| write | 覆盖原来的文件内容进行写入 |
| writable | 判断文件是否可以写入 |
| writelines | 其后的参数可以迭代 |
stream = open(r'E:\图片','a') # a表示追加,在现有的内容后面追加
小结
| mode | 意义 |
|---|---|
| t | 默认,文本模式 |
| w | 写入并先截断文件(每次写入会覆盖原来内容) |
| x | 排它性创建,如果文件存在则创建失败 |
| a | 在文件已存在内容末尾追加新内容 |
| b | 二进制模式 |
| r | 读入 |
文件复制
with......as.......:表示对文件进行操作后自动关闭stream
- with和open结合可以帮助我们自动释放资源
with open(r'路径1','r') as stream:
contniner = stream.read()
with open(r'路径2','w') as wstream:
wstream.write()
print('文件复制完成')