文件操作
格式:
stream = open(path/filename,mode) #相当于打开一个管道
container = stream.read() #从管道中读取文件
读文件
mode 的值表示模式,例如mode= 'r'表示读文件,下表为mode为不同值时的操作。
| 读取(默认) |
| 写入,并先截断文件 |
| 排它性创建,如果文件已存在则失败 |
| 打开文件用于写入,如果文件存在则在末尾追加 |
| 二进制模式 |
| 文本模式(默认) |
| 打开用于更新(读取与写入) |
默认模式为 'r'
(打开文件用于读取文本,与 'rt'
同义)。'w+'
和 'w+b'
模式将打开文件并清空内容。而 'r+'
和 'r+b'
模式将打开文件但不清空内容。
例如:
stream = open(r'C:\Users\Desktop\Study\as\123.txt', 'r')
result = stream.read()
print(result)
注意:如果传递的path/filename有误,则会报错:FileNotFoundError
如果是图片则不能是默认的读取方式, mode = 'rb'
.read() 读取所有内容
.readline()每次读取一行内容
.readlines()读取所有的行保存到列表中
.readable()判断是否可读
写文件
格式:
stream= open (r'C/path/filename','w')
stream.write('要写入的内容')
例如:
stream = open(r'C:\Users\Desktop\Study\as\123.txt', 'w')
stream.write('asdadfdz')
write(内容) 每次(open--->close)都会将原来的内容清空,然后写当前的内容
writelines(Iterable) 没有换行效果,如果要想有换行的效果,只能自己加 \n
释放资源
格式:
stream.close() 关闭管道,释放资源
OS模块
os模块下方法
os.getcwd() 获取当前目录
os.listdir() 浏览文件夹
os.mkdir() 创建文件夹
os.rmdir() 删除文件夹
os.remove() 删除文件
os.chdir() 切换目录
os.path常用函数
dirname() 获取指定文件的目录
join() 拼接获取新的路径
split() 分割(文件目录,文件名)
splitftext() 分割(文件目录\文件名,文件的扩展名)
getsizes() 获取文件大小
isabs 判断是否是绝对路径
isfile() 判断是否是文件
isdir() 判断是否是文件夹
复制文件
复制文件其实分为两部分,第一步读取文件内容,然后记住,写入另一个文件中。
with open('C:\\p1\\gril.jpg', 'rb') as stream:
container = stream.read() #读取文件内容
with open('C:\\p2\\gril.jpg', 'wb') as wstream:
wstream.write(container) #写入到另一个文件中
print('文件复制完成!')
复制文件夹
代码:
import os
src_path = '文件路径'
target_path = '文件路径'
def copy(path, target_path):
# 获取文件夹里面的内容
file_list = os.listdir(src_path)
# 遍历列表
for file_name in file_list:
# 拼接路径
path = os.path.join(src_path, file_name)
# 判断是不是文件夹
if os.path.isdir(path):
# 递归
copy(path, target_path)
else:
with open(path, 'r') as f:
container = f.read()
path1 = os.path.join(target_path, file_name)
with open(path1, 'w') as s:
s.write(container)
else:
print('复制完成!')
# 调用
copy(src_path, target_path)
标签:文件,读取,stream,Python,open,模块,path,os
From: https://blog.csdn.net/qq_74342020/article/details/136965069