在特定路径上写入文件的问题
Problem with writing a file on a certain path
我尝试通过指定要保存的文件夹路径将文件写入磁盘。但是按指定路径读取文件报错
FileNotFoundError: [Errno 2] No such file or directory: '/home/jekson/Projects/img-text-reco/static/product_images/24f2a9d0372a49bc8c5eb259798477f0.jpeg'
这一行出现错误。
async with aiofiles.open(os.path.join(IMG_DIR, file_name)) as f
为清楚起见,我进行了打印调用,指示主体函数中的路径
from db import BASEDIR
print(BASEDIR) # /home/jekson/Projects/img-text-reco
def file_upload():
....
IMG_DIR = os.path.join(BASEDIR, 'static/product_images')
if not os.path.exists(IMG_DIR):
os.makedirs(IMG_DIR)
print(f'IMG_DIR {IMG_DIR}') # IMG_DIR /home/jekson/Projects/img-text-reco/static/product_images
content = await file.read()
if file.content_type not in ['image/jpeg', 'image/png']:
raise HTTPException(status_code=406, detail="Only .jpeg or .png files allowed")
file_name = f'{uuid.uuid4().hex}{ext}'
print(os.path.join(IMG_DIR, file_name)) # /home/jekson/Projects/img-text-reco/static/product_images/24f2a9d0372a49bc8c5eb259798477f0.jpeg
async with aiofiles.open(os.path.join(IMG_DIR, file_name)) as f:
await f.write(content)
path_to_img = os.path.abspath(os.path.join(IMG_DIR, file_name))
....
您打开文件进行阅读,但它不存在,因此出现错误。以下 f.write
建议您改为打开文件进行写入:
async with aiofiles.open(os.path.join(IMG_DIR, file_name), mode='w') as f:
我尝试通过指定要保存的文件夹路径将文件写入磁盘。但是按指定路径读取文件报错
FileNotFoundError: [Errno 2] No such file or directory: '/home/jekson/Projects/img-text-reco/static/product_images/24f2a9d0372a49bc8c5eb259798477f0.jpeg'
这一行出现错误。
async with aiofiles.open(os.path.join(IMG_DIR, file_name)) as f
为清楚起见,我进行了打印调用,指示主体函数中的路径
from db import BASEDIR
print(BASEDIR) # /home/jekson/Projects/img-text-reco
def file_upload():
....
IMG_DIR = os.path.join(BASEDIR, 'static/product_images')
if not os.path.exists(IMG_DIR):
os.makedirs(IMG_DIR)
print(f'IMG_DIR {IMG_DIR}') # IMG_DIR /home/jekson/Projects/img-text-reco/static/product_images
content = await file.read()
if file.content_type not in ['image/jpeg', 'image/png']:
raise HTTPException(status_code=406, detail="Only .jpeg or .png files allowed")
file_name = f'{uuid.uuid4().hex}{ext}'
print(os.path.join(IMG_DIR, file_name)) # /home/jekson/Projects/img-text-reco/static/product_images/24f2a9d0372a49bc8c5eb259798477f0.jpeg
async with aiofiles.open(os.path.join(IMG_DIR, file_name)) as f:
await f.write(content)
path_to_img = os.path.abspath(os.path.join(IMG_DIR, file_name))
....
您打开文件进行阅读,但它不存在,因此出现错误。以下 f.write
建议您改为打开文件进行写入:
async with aiofiles.open(os.path.join(IMG_DIR, file_name), mode='w') as f: