Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleSeg
提交
d73b5914
P
PaddleSeg
项目概览
PaddlePaddle
/
PaddleSeg
通知
285
Star
8
Fork
1
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
53
列表
看板
标记
里程碑
合并请求
3
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleSeg
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
53
Issue
53
列表
看板
标记
里程碑
合并请求
3
合并请求
3
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d73b5914
编写于
6月 12, 2020
作者:
C
chenguowei01
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
add download
上级
2f1b1af5
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
136 addition
and
0 deletion
+136
-0
dygraph/utils/__init__.py
dygraph/utils/__init__.py
+1
-0
dygraph/utils/download.py
dygraph/utils/download.py
+135
-0
未找到文件。
dygraph/utils/__init__.py
浏览文件 @
d73b5914
...
...
@@ -14,4 +14,5 @@
from
.
import
logging
from
.metrics
import
ConfusionMatrix
from
.download
import
download_file_and_uncompress
from
.utils
import
*
dygraph/utils/download.py
0 → 100644
浏览文件 @
d73b5914
import
os
import
sys
import
time
import
requests
import
tarfile
import
zipfile
import
shutil
import
functools
lasttime
=
time
.
time
()
FLUSH_INTERVAL
=
0.1
def
progress
(
str
,
end
=
False
):
global
lasttime
if
end
:
str
+=
"
\n
"
lasttime
=
0
if
time
.
time
()
-
lasttime
>=
FLUSH_INTERVAL
:
sys
.
stdout
.
write
(
"
\r
%s"
%
str
)
lasttime
=
time
.
time
()
sys
.
stdout
.
flush
()
def
_download_file
(
url
,
savepath
,
print_progress
):
r
=
requests
.
get
(
url
,
stream
=
True
)
total_length
=
r
.
headers
.
get
(
'content-length'
)
if
total_length
is
None
:
with
open
(
savepath
,
'wb'
)
as
f
:
shutil
.
copyfileobj
(
r
.
raw
,
f
)
else
:
with
open
(
savepath
,
'wb'
)
as
f
:
dl
=
0
total_length
=
int
(
total_length
)
starttime
=
time
.
time
()
if
print_progress
:
print
(
"Downloading %s"
%
os
.
path
.
basename
(
savepath
))
for
data
in
r
.
iter_content
(
chunk_size
=
4096
):
dl
+=
len
(
data
)
f
.
write
(
data
)
if
print_progress
:
done
=
int
(
50
*
dl
/
total_length
)
progress
(
"[%-50s] %.2f%%"
%
(
'='
*
done
,
float
(
100
*
dl
)
/
total_length
))
if
print_progress
:
progress
(
"[%-50s] %.2f%%"
%
(
'='
*
50
,
100
),
end
=
True
)
def
_uncompress_file_zip
(
filepath
,
extrapath
):
files
=
zipfile
.
ZipFile
(
filepath
,
'r'
)
filelist
=
files
.
namelist
()
rootpath
=
filelist
[
0
]
total_num
=
len
(
filelist
)
for
index
,
file
in
enumerate
(
filelist
):
files
.
extract
(
file
,
extrapath
)
yield
total_num
,
index
,
rootpath
files
.
close
()
yield
total_num
,
index
,
rootpath
def
_uncompress_file_tar
(
filepath
,
extrapath
,
mode
=
"r:gz"
):
files
=
tarfile
.
open
(
filepath
,
mode
)
filelist
=
files
.
getnames
()
total_num
=
len
(
filelist
)
rootpath
=
filelist
[
0
]
for
index
,
file
in
enumerate
(
filelist
):
files
.
extract
(
file
,
extrapath
)
yield
total_num
,
index
,
rootpath
files
.
close
()
yield
total_num
,
index
,
rootpath
def
_uncompress_file
(
filepath
,
extrapath
,
delete_file
,
print_progress
):
if
print_progress
:
print
(
"Uncompress %s"
%
os
.
path
.
basename
(
filepath
))
if
filepath
.
endswith
(
"zip"
):
handler
=
_uncompress_file_zip
elif
filepath
.
endswith
(
"tgz"
):
handler
=
_uncompress_file_tar
else
:
handler
=
functools
.
partial
(
_uncompress_file_tar
,
mode
=
"r"
)
for
total_num
,
index
,
rootpath
in
handler
(
filepath
,
extrapath
):
if
print_progress
:
done
=
int
(
50
*
float
(
index
)
/
total_num
)
progress
(
"[%-50s] %.2f%%"
%
(
'='
*
done
,
float
(
100
*
index
)
/
total_num
))
if
print_progress
:
progress
(
"[%-50s] %.2f%%"
%
(
'='
*
50
,
100
),
end
=
True
)
if
delete_file
:
os
.
remove
(
filepath
)
return
rootpath
def
download_file_and_uncompress
(
url
,
savepath
=
None
,
extrapath
=
None
,
extraname
=
None
,
print_progress
=
True
,
cover
=
False
,
delete_file
=
True
):
if
savepath
is
None
:
savepath
=
"."
if
extrapath
is
None
:
extrapath
=
"."
savename
=
url
.
split
(
"/"
)[
-
1
]
savepath
=
os
.
path
.
join
(
savepath
,
savename
)
savename
=
"."
.
join
(
savename
.
split
(
"."
)[:
-
1
])
savename
=
os
.
path
.
join
(
extrapath
,
savename
)
extraname
=
savename
if
extraname
is
None
else
os
.
path
.
join
(
extrapath
,
extraname
)
if
cover
:
if
os
.
path
.
exists
(
savepath
):
shutil
.
rmtree
(
savepath
)
if
os
.
path
.
exists
(
savename
):
shutil
.
rmtree
(
savename
)
if
os
.
path
.
exists
(
extraname
):
shutil
.
rmtree
(
extraname
)
if
not
os
.
path
.
exists
(
extraname
):
if
not
os
.
path
.
exists
(
savename
):
if
not
os
.
path
.
exists
(
savepath
):
_download_file
(
url
,
savepath
,
print_progress
)
savename
=
_uncompress_file
(
savepath
,
extrapath
,
delete_file
,
print_progress
)
savename
=
os
.
path
.
join
(
extrapath
,
savename
)
shutil
.
move
(
savename
,
extraname
)
return
savename
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录