def get_newname(path):
def conv_char(ch):
safe_char = string.ascii_letters + string.digits + "-_"
if ch in safe_char:
return ch
return "_"
#
if path == ".":
return path
dirname, basename = os.path.split(path)
base, ext = os.path.splitext(basename)
newbase = "".join(map(conv_char, base))
if basename == newbase+ext:
return os.path.join(dirname, basename)
if os.path.exists("%s/%s%s" % (dirname, newbase, ext)):
i = 0
while os.path.exists("%s/%s_%d%s" % (dirname, newbase, i, ext)):
i += 1
newbase += "_%d" % i
newname = "%s/%s%s" % (dirname, newbase, ext)
return newname
评论列表
文章目录