|
import string
|
|
import uuid
|
|
import datetime
|
|
import os
|
|
import platform
|
|
import subprocess
|
|
from pathlib import Path
|
|
|
|
def is_all_punc(strings):
|
|
if isinstance(strings, datetime.time):
|
|
return True
|
|
elif isinstance(strings, datetime.datetime):
|
|
return True
|
|
elif isinstance(strings, (int, float, complex)):
|
|
return True
|
|
|
|
chinese_punctuations=get_chinese_punctuation()
|
|
for s in strings:
|
|
if s not in string.punctuation and not s.isdigit() and not s.isdecimal() and s != "" and not s.isspace() and s not in chinese_punctuations:
|
|
return False
|
|
return True
|
|
|
|
def is_chinese(char):
|
|
if '\u4e00' <= char <= '\u9fff':
|
|
return True
|
|
return False
|
|
|
|
def get_chinese_punctuation():
|
|
return [':','【','】',',','。','、','?','」','「',';','!','@','¥','(',')']
|
|
|
|
def display_spend(start_time,end_time):
|
|
left_time = end_time - start_time
|
|
days = left_time.days
|
|
hours, remainder = divmod(left_time.seconds, 3600)
|
|
minutes, seconds = divmod(remainder, 60)
|
|
spend="用时"
|
|
if days>0:
|
|
spend+="{}天".format(days)
|
|
if hours>0:
|
|
spend+="{}小时".format(hours)
|
|
if minutes>0:
|
|
spend+="{}分钟".format(minutes)
|
|
if seconds>0:
|
|
spend+="{}秒".format(seconds)
|
|
return spend
|
|
|
|
def random_uuid(length):
|
|
result = str(uuid.uuid4())[:length]
|
|
return result
|
|
|
|
|
|
def find_command_location(command):
|
|
if platform.system() == 'Windows':
|
|
cmd = 'where'
|
|
else:
|
|
cmd = 'which'
|
|
try:
|
|
print(command)
|
|
location = subprocess.check_output([cmd, command]).strip()
|
|
print(location.decode("utf-8"))
|
|
return location.decode('utf-8')
|
|
except subprocess.CalledProcessError as e:
|
|
print(e)
|
|
raise Exception("未安装"+command)
|
|
|
|
def format_file_path(filepath):
|
|
filename=os.path.basename(filepath)
|
|
filename=filename.replace(" ",r"\ ").replace("/","\\");
|
|
parentpath=os.path.dirname(filepath)
|
|
return "{}/{}".format(parentpath, filename)
|
|
|