如何在烧瓶中正确创建文件夹和路径

我在烧瓶中创建了一个文件夹和路径,如下面的代码所示:


def add_video(form_video, loc, foldername1, foldername2):

    filename = secure_filename(form_video.filename)

    if len(filename) < 0:

        return False;

    randon_hex = secrets.token_hex(8)

    _, f_ext = os.path.splitext(filename)

    video_fn = randon_hex + f_ext     #filename

    """ create vide upload folder for each course uploaded by a user"""

    if loc == 'v_uploads':

        video_path = os.path.join(current_app.root_path, 'static\\stylesheets\\v_uploads\\' + str(foldername1) + '\\' + str(foldername2),  video_fn )

        os.makedirs(os.path.dirname(video_path), exist_ok=True)

        form_video.save(video_path)

        """

        size = os.stat(video_path).st_size

        """

    return video_fn

这适用于我计算机上的本地主机。但是当站点使用 unicorn 和 nginx 远程部署时,它没有创建文件夹 stylesheets/v_uploads/john/python/video.mp4,而是创建了一个名为“static\stylesheets\v_uploads\john\video”的文件夹。我的意思是上传路径没有正确创建。我究竟做错了什么 ?


慕妹3242003
浏览 107回答 1
1回答

BIG阳

远程主机正在运行 Linux,其中\不是目录分隔符;它是文件名中的有效字符。所以它按照你的要求做了,并创建了那个文字文件名。更改您的join()调用以分别传递每个组件,它将正确组装路径,使用主机操作系统的适当目录分隔符:video_path&nbsp;=&nbsp;os.path.join(current_app.root_path,&nbsp;'static',&nbsp;'stylesheets',&nbsp;'v_uploads',&nbsp;str(foldername1),&nbsp;str(foldername2),&nbsp;&nbsp;video_fn)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python