从UI上传文件后,如何使用/ opt / files /中的当前时间戳创建新目录,并将上传的zip文件复制到此目录,并将zip文件解压缩到新目录中并维护变量中的新目录名
def upload_info(request):
if request.method == 'POST':
file=request.FILES['file']
dir = "/opt/files"
file_name = "%s/%s" % (dir, file.name)
form = UploadFileForm(request.POST, request.FILES)
try:
handle_uploaded_file( file_name , file )
def handle_uploaded_file(file_name,f):
destination = open(file_name, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
destination.close()
return
答案 0 :(得分:8)
使用Python的os
模块可以实现创建目录(参见documentation)。例如:
import os
from datetime import datetime
dirname = datetime.now().strftime('%Y.%m.%d.%H.%M.%S') #2010.08.09.12.08.45
os.mkdir(os.path.join('/opt/files', dirname))
您可以使用os.rename
(documentation)按照您的选择移动文件(前提是您拥有必要的权限)。可以使用Subprocesses或使用Python module通过命令行解压缩(使用gzip
模块的示例可以找到here)。
答案 1 :(得分:0)
所以,创建目录的正确答案是:
如果您想静默创建文件夹(如果它们不存在):
import os
os.makedirs(exist_ok=True)
如果文件夹已经存在则抛出错误:
import os
os.makedirs()
答案 2 :(得分:-1)
这是我使用的功能:
def makedirs(path):
try:
os.makedirs(path)
except OSError as e:
if e.errno == 17:
# Dir already exists. No biggie.
pass