jsonn输入内容为空

BUG反馈 · 649 次浏览
nga 创建于 2022-01-17 18:12

在两台电脑里都安装了,都没法用,提示这个,请问是什么问题?


回复内容
nga 2022-01-18 08:11 :

已贴调试运行记录,有解决方法吗




nga 2022-01-18 08:10
#2
 
6Win-10.0.19044.0 Quicker-1.28.18.0 动作ID:404b9045-a07f-44db-83b7-b862045b979a 来源动作:fac14427-c0f5-4567-c945-08d99706f10d v4
8Log文件路径:C:\Users\Y\AppData\Local\Temp\quicker_规范文件命名_080728-079_log.htm 在资源管理器中查看 复制文件
8开始执行动作:规范文件命名 2022-01-18 08:07:28
9动作初始化
110生成临时文件路径生成脚本文件
[in]扩展名【值/表达式】.py
[out]文件路径=>临时Python脚本位置C:\Users\Y\AppData\Local\Temp\quicker_8d9aef75-c418-4749-8a2c-7f8d503459b3.py
151写入文本文件将脚本内容写入py文件
[in]失败后停止【值/表达式】True
[in]文件路径【变量 临时Python脚本位置】C:\Users\Y\AppData\Local\Temp\quicker_8d9aef75-c418-4749-8a2c-7f8d503459b3.py
[in]内容【值/表达式】import sys\r\n
import re\r\n
from datetime import datetime\r\n
from os import path\r\n
import json\r\n
from pprint import pprint\r\n
\r\n
输入文件 = sys.argv[1]\r\n
# 输入文件 = r"D:/(20210512-091500)大类-大类2-标题(v1.1.1)#标签1#标签2@人物1@人物2=&评论.jpg"\r\n
# 输入文件 = r"D:/(2021-05-12)大类-大类2-标题(v1.1.1)#标签1#标签2@人物1@人物2=&评论.jpg"\r\n
# 输入文件 = r"D:/img(2021-05)大类-大类2-标题(v1.1.1)#标签1#标签2@人物1@人物2=&评论.jpg"\r\n
# 输入文件 = r"1111标题(v1.1.1.beta)#标签1#标签2@人物1@人物2&评论.jpg"\r\n
# 输入文件 = r"20211025-102501__OPPO-Giant__Proj1.S1.Rn4D.4k60.sLog3__BTS__Li.mov"\r\n
# 输入文件 = r"d:/mmexport1111416781651.mov"\r\n
# 输入文件 = r"20211025-102501__Proj1.S1.Rn4D.4k60.sLog3__Li.mov"\r\n
# 输入文件 = r"2021-10-25__Proj1.S1.Rn4D.4k60.sLog3.mov"\r\n
文件名 = path.basename(输入文件) \r\n
文件名无后缀 = path.splitext(文件名)[0] if path.isfile(输入文件) else 文件名\r\n
\r\n
\r\n
def 解析严格标准名字(文件无后缀名字):\r\n
'''\r\n
由于块间分隔符相同,无法分辨出哪个是标签,哪个是人物,只能返回李模糊匹配的字典:\r\n
{\r\n
'文本块': ['前缀', '标题', '标签', '人物', '评论'],\r\n
'时间': datetime.datetime(2021, 10, 25, 10, 25, 1),\r\n
'版本': ''\r\n
}\r\n
'''\r\n
\r\n
组1 = f'(?:[^\d]*)[^\d]?[\d\-_]*\)?' # 时间\r\n
组2 = r'[^_]+_*' # 前缀\r\n
组3 = r'[^_]+_*' # 标题\r\n
组4 = r'v[^_]+_*' # 版本\r\n
组5 = r'[^_]+_*' # 标签\r\n
组6 = r'[^_]+_*' # 人物\r\n
组7 = r'[^_]+_*' # 评论\r\n
\r\n
标准名字匹配结果 = re.match(\r\n
f'({组1})?({组2})?({组3})?({组4})?({组5})?({组6})?({组7})?', 文件无后缀名字)\r\n
\r\n
非时间数据块列表 = [标准名字匹配结果.group(i).strip('_') \\r\n
for i in [2, 3, 5, 6, 7] \\r\n
if 标准名字匹配结果.group(i)]\r\n
\r\n
时间 = 从字符串得到时间(标准名字匹配结果.group(1)) if 标准名字匹配结果.group(1) else ''\r\n
版本 = 标准名字匹配结果.group(4) if 标准名字匹配结果.group(4) else ''\r\n
\r\n
结果 = {'时间': 时间, '版本': 版本, '文本块': 非时间数据块列表}\r\n
\r\n
return 结果\r\n
\r\n
def 解析宽松标准名字(文件无后缀名字):\r\n
\r\n
组1 = '(?:[^\d]*)[^\d]?[\d\-_]{4,}\)?' # 时间\r\n
组2 = r'[^\(#@&]+-' # 前缀\r\n
组3 = r'[^\(#@&]+' # 标题\r\n
组4 = r'\([^#@&]+\)' # 版本\r\n
组5 = r'#[^@&]+' # 标签\r\n
组6 = r'@[^&]+' # 人物\r\n
组7 = r'&.+' # 评论\r\n
\r\n
标准名字匹配结果 = re.match(\r\n
f'({组1})?({组2})?({组3})?({组4})?({组5})?({组6})?({组7})?', 文件无后缀名字)\r\n
\r\n
时间 = 标准名字匹配结果.group(1) if 标准名字匹配结果.group(1) else ''\r\n
前缀 = 标准名字匹配结果.group(2) if 标准名字匹配结果.group(2) else ''\r\n
标题 = 标准名字匹配结果.group(3) if 标准名字匹配结果.group(3) else ''\r\n
版本 = 标准名字匹配结果.group(4) if 标准名字匹配结果.group(4) else ''\r\n
标签 = 标准名字匹配结果.group(5) if 标准名字匹配结果.group(5) else ''\r\n
人物 = 标准名字匹配结果.group(6) if 标准名字匹配结果.group(6) else ''\r\n
评论 = 标准名字匹配结果.group(7) if 标准名字匹配结果.group(7) else ''\r\n
\r\n
时间 = 从字符串得到时间(时间)\r\n
时间 = 时间 if 时间 else ''\r\n
前缀 = 前缀.strip('-')\r\n
版本 = 版本.strip('()')\r\n
标签 = 标签.replace('#', '\r\n#').lstrip()\r\n
人物 = 人物.replace('@', '\r\n@').lstrip()\r\n
评论 = 评论.replace('&', '\r\n').lstrip()\r\n
\r\n
if not 时间 and not 前缀 and not 版本 and not 标签 and not 人物 and not 评论:\r\n
标题 = 文件无后缀名字\r\n
\r\n
结果 = {'文件名时间': 时间, \r\n
'前缀': 前缀, '标题': 标题, \r\n
'版本': 版本, \r\n
'标签': 标签, '人物': 人物, '评论': 评论}\r\n
\r\n
return 结果\r\n
\r\n
def 从字符串得到时间(字符串):\r\n
全数字 = ''.join(re.findall(r'\d+', 字符串))\r\n
当前时间 = datetime.now()\r\n
\r\n
try:\r\n
# 年月日时分秒\r\n
时间 = datetime.fromisoformat(\r\n
f'{全数字[0:4]}-{全数字[4:6]}-{全数字[6:8]} {全数字[8:10]}:{全数字[10:12]}:{全数字[12:14]}'\r\n
)\r\n
return f'{时间.year}{时间.month}{时间.day}-{时间.hour}{时间.minute}{时间.second}'\r\n
except:\r\n
...\r\n
try:\r\n
# 年月日\r\n
if len(全数字) == 8:\r\n
时间 = datetime.fromisoformat(\r\n
f'{全数字[0:4]}-{全数字[4:6]}-{全数字[6:8]} 00:00:00'\r\n
)\r\n
return f'{时间.year}-{时间.month}-{时间.day}'\r\n
except:\r\n
...\r\n
try:\r\n
# 年月\r\n
if len(全数字) == 6:\r\n
时间 = datetime.fromisoformat(\r\n
f'{全数字[0:4]}-{全数字[4:6]}-01 00:00:00'\r\n
)\r\n
return f'{时间.year}-{时间.month}'\r\n
except:\r\n
...\r\n
try:\r\n
# 年\r\n
if len(全数字) == 4:\r\n
时间 = datetime.fromisoformat(\r\n
f'{全数字[0:4]}-01-01 00:00:00'\r\n
)\r\n
return f'{时间.year}'\r\n
except:\r\n
...\r\n
\r\n
\r\n
try:\r\n
# 类似 mmexport1111467816512.jpg\r\n
if re.match(r'.*[^\d]?(\d{13})([^\d]+)?', 文件名):\r\n
时间 = datetime.fromtimestamp(\r\n
int(全数字[0:13]) / 1000\r\n
)\r\n
return f'{时间.year}{时间.month}{时间.day}-{时间.hour}{时间.minute}{时间.second}'\r\n
except:\r\n
...\r\n
\r\n
try:\r\n
# 类似 121301190818c8f0c7010755.mp4\r\n
时间 = datetime.fromisoformat(\r\n
f'20{全数字[10:12]}-{全数字[8:10]}-{全数字[6:8]} {全数字[4:6]}:{全数字[2:4]}:{全数字[0:2]}').timestamp()\r\n
return f'{时间.year}{时间.month}{时间.day}-{时间.hour}{时间.minute}{时间.second}'\r\n
except:\r\n
...\r\n
\r\n
return False\r\n
\r\n
if __name__ == '__main__':\r\n
\r\n
# 结果 = 解析严格标准名字(文件名无后缀)\r\n
结果 = 解析宽松标准名字(文件名无后缀)\r\n
\r\n
结果 = json.dumps(结果, ensure_ascii=True)\r\n
\r\n
print(结果)\r\n
[in]文件编码【值/表达式】utf-8
[in]添加到文件末尾【值/表达式】False
[in]添加空行【值/表达式】False
[in]添加UTF-BOM【值/表达式】False
192获取剪贴板文本=> {剪切板内容}
[in]失败后中止动作【值/表达式】False
[in]文本数据格式【值/表达式】UnicodeText
[out]结果内容=>剪切板内容https://getquicker.net/Sharedaction?code=fac14427-c0f5-4567-c945-08d99706f10d
193获取选中的文件(夹)获取所选所有文件
[in]失败后中止动作【值/表达式】True
[in]排序文件列表【无输入】Default
35通过Win32接口获得的文件数量为0,尝试Ctrl+C选择
147通过Ctrl+c获得了1个文件
[out]路径列表=>路径列表0:C:\Users\Y\Desktop\混改-德勤.pdf
1494如果判断条件:$={剪切板内容} != ''
[in]如果【值/表达式】True
153执行 True 分支, 共 1 步骤
1554.0写入剪贴板自动(纯文本或图片) => 剪贴板
[in]失败后停止【值/表达式】False
[in]类型【值/表达式】auto
[in]输入【变量 剪切板内容】https://getquicker.net/Sharedaction?code=fac14427-c0f5-4567-c945-08d99706f10d
155写入文本类型。
[in]输入【变量 剪切板内容】https://getquicker.net/Sharedaction?code=fac14427-c0f5-4567-c945-08d99706f10d
[in]成功后提示【值/表达式】
2175重复对每一个文件都进行命名
[in]次数【值/表达式】1
[in]计数开始值【值/表达式】0
[in]循环间隔时间【值/表达式】1
218第 0 次循环
[out]计数=>循环次数0
2185.0检查路径/获取文件信息检查路径是否存在、是不是文件
[in]路径【值/表达式】C:\Users\Y\Desktop\混改-德勤.pdf
[out]路径是否存在=>路径是否存在True
[out]是否为文件=>是否为文件True
2195.1如果要是获得的路径不存在,就进行下一步
[in]如果【值/表达式】False
220不符合条件,跳过。
2205.2如果/否则判断条件:$={是否为文件}
[in]如果【值/表达式】True
220执行 True 分支, 共 1 步骤
2205.2.0提取文件路径信息得到所在目录、扩展名
[in]失败后停止【值/表达式】True
[in]完整路径【值/表达式】C:\Users\Y\Desktop\混改-德勤.pdf
[out]所在文件夹路径=>文件所在目录C:\Users\Y\Desktop
[out]扩展名=>文件扩展名.pdf
2205.3运行脚本使用Python对文件名进行正则匹配解析
[in]脚本内容【值/表达式】python "C:\Users\Y\AppData\Local\Temp\quicker_8d9aef75-c418-4749-8a2c-7f8d503459b3.py" "C:\Users\Y\Desktop\混改-德勤.pdf"
[in]脚本类型【值/表达式】CMD_K
[in]扩展名【无输入】
[in]使用指定软件【无输入】
[in]命令行参数模板【无输入】%FILE%
[in]以管理员身份运行【值/表达式】False
[in]等待进程结束【值/表达式】True
[in]文件编码【值/表达式】utf-8
[in]工作目录【值/表达式】
[in]控制台输出编码【值/表达式】oem
[out]控制台输出=>Python脚本输出
5925.4如果判断条件:$={Python脚本输出}.StartsWith('Python')
[in]如果【值/表达式】False
593不符合条件,跳过。
5935.5提取JSON内容$={Python脚本输出} => {时间} {前缀} {标题}...
[in]失败后停止【值/表达式】True
[in]输入【值/表达式】
594步骤(sys:jsonExtract)执行失败,原因:JSON输入内容为空。
600停止动作:JSON输入内容为空。
600检测到了中止标志(OperationFailed),停止后续步骤执行。
600检测到了中止标志(OperationFailed),停止后续步骤执行。
600动作结束
回复主贴