AIOFILES文件操作类封住
# 异步文件操作
import aiofiles
import asyncio
# 写入文件
async def write_content(path, content):
async with aiofiles.open(path, 'w', encoding='UTF-8') as fp:
await fp.write(content)
print(f'写入{path}文件成功')
# 读取文件
async def read_content(path):
async with aiofiles.open(path, 'r', encoding='UTF-8') as fp:
content = await fp.read()
return content
# 读取每一行文件
async def read_content_line(path):
async with aiofiles.open(path, 'r', encoding='UTF-8') as fp:
lines = []
async for line in fp:
lines.append(line)
return lines
'''
flag:操作文件标识 1 - 写文件, 2 - 读文件, 3 - 按行读文件
path:文件路径
content: 文件内容,如果是读文件,则为None
'''
def call_func(flag, path, content) :
if flag == 1:
asyncio.get_event_loop().run_until_complete(write_content(path, content))
elif flag == 2:
return asyncio.get_event_loop().run_until_complete(read_content(path))
else :
return asyncio.get_event_loop().run_until_complete(read_content_line(path))
使用方法:直接调用call_func()方法,如下:
# 写入文件
print(aiofiles_utils.call_func(1, './aiofiles_async/text.txt', '测试'))
print(aiofiles_utils.call_func(2, './aiofiles_async/text.txt', None))
print(aiofiles_utils.call_func(3, './aiofiles_async/text.txt', None))