创建文件夹并将文件保存到该文件夹中,然后提取 zip 文件
Posted
技术标签:
【中文标题】创建文件夹并将文件保存到该文件夹中,然后提取 zip 文件【英文标题】:Create folder and save file into that folder and then extract zip file 【发布时间】:2018-05-29 11:10:41 【问题描述】:我有这段代码,它根据登录的用户创建一个文件夹,并将他们上传的文件保存到该文件夹中。用户上传的文件是一个 zip 文件,我想在上传时解压。
问题是这段代码不起作用,因为它在创建后退出了文件夹,所以它出现了一个 IO 错误,说它找不到文件。
我将如何继续解决这个问题?
def user_directory_path(instance, filename):
# file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
zip = ZipFile(filename)
return 'user_0/1'.format(instance.user, filename) and zip.extract()
异常值:
[Errno 2] 没有这样的文件或目录:'UploadedFile.zip'
【问题讨论】:
【参考方案1】:几个建议:
您必须先创建“user_0”目录os.join()
是创建路径的规范
你的函数返回一个布尔值,不确定它是你想要的
【讨论】:
谢谢。我根据你的回答做了一些。 createfolder = os.path.join('C:/', 'Users', 'myuser', 'Desktop', 'Project', 'Fileuploads', time_stamp,) mkdir(createfolder) - 但它返回那些双斜杠“\ \" 在给我一个 IO 错误的路径中。你知道如何解决这个问题吗? 双重冲突完全没问题,这是路径的标准表示。在 Windows 上,字母驱动器存在一些问题,这可能会导致问题 docs.python.org/3.6/library/os.path.html#os.path.join 为简单起见,您可以尝试:folder =os.path.join('C:\\Users\\myuser\\Desktop\\Project\\Fileuploads', str(time_stamp))
是的,刚刚注意到。这不会发生在我的 Ubuntu 实例上。
我仍然找不到文件,即使它提到了完整的正确路径以上是关于创建文件夹并将文件保存到该文件夹中,然后提取 zip 文件的主要内容,如果未能解决你的问题,请参考以下文章