报错

异常报告 · 614 次浏览
HUSTHKX 创建于 2021-10-28 14:50

使用的Python3.10.0,通过scoop下载的,全局安装,环境变量中也有python的路径,不知道是什么问题。

HUSTHKX 最后更新于 2021/10/28

回复内容
淳帅二代 2021-10-30 16:39
#1

Python was not found


这就是说 Quicker 没有找到 Python。

你先试下在 cmd 命令行里,输入 python -V ,看看有没有正确的版本输出。

如果没有版本信息,那就是 Python 没有安装,或者没有添加到环境变量 Path 中。

如果有正确输出,重启 Quicker 或电脑试下。

淳帅二代 最后更新于 2021-11-01 19:58
Chesed 2021-10-31 10:26 :

是添加变量不成功的问题,解决了 谢谢

Chesed 2021-10-30 15:16
#2
我的也出现错误了,办公室电脑可以运行回家就不行了
Chesed 最后更新于 2021-10-30 15:17
淳帅二代 2021-10-28 19:42
#3
动作右键,调试运行,结果发我看下
Chesed 2021-10-30 15:17 :
4Win-10.0.19043.0 Quicker-1.27.13.0 动作ID:2f49fcbb-714f-4648-88e4-9282e2be88e3 来源动作:fac14427-c0f5-4567-c945-08d99706f10d v3
5Log文件路径:C:\Users\lchao\AppData\Local\Temp\quicker_规范文件命名_031416-826_log.htm 在资源管理器中查看 复制文件
6开始执行动作:规范文件命名 2021-10-30 15:14:16
70生成临时文件路径生成脚本文件
[in]扩展名【值/表达式】.py
[out]文件路径=>临时Python脚本位置C:\Users\lchao\AppData\Local\Temp\quicker_eff8b9c1-3936-4120-b7b0-a743238c2a16.py
101写入文本文件将脚本内容写入py文件
[in]失败后停止【值/表达式】True
[in]文件路径【变量 临时Python脚本位置】C:\Users\lchao\AppData\Local\Temp\quicker_eff8b9c1-3936-4120-b7b0-a743238c2a16.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
112获取剪贴板文本=> {剪切板内容}
[in]失败后中止动作【值/表达式】False
[in]文本数据格式【值/表达式】UnicodeText
260步骤(sys:getClipboardText)执行失败,原因:获得的剪贴板文本为空。
2623获取选中的文件(夹)获取所选所有文件
[in]失败后中止动作【值/表达式】True
291通过Win32接口获得了1个文件
[out]路径列表=>路径列表0:G:\OneDrive - 科技花\Work\青山绿水家园1.2.3.6.7\成果文件\青山绿水家园-2#电气.GQI4
2914如果判断条件:$={剪切板内容} != ''
[in]如果【值/表达式】False
293不符合条件,跳过。
2935重复对每一个文件都进行命名
[in]次数【值/表达式】1
[in]计数开始值【值/表达式】0
[in]循环间隔时间【值/表达式】1
294第 0 次循环
[out]计数=>循环次数0
2945.0检查路径/获取文件信息检查路径是否存在、是不是文件
[in]路径【值/表达式】G:\OneDrive - 科技花\Work\青山绿水家园1.2.3.6.7\成果文件\青山绿水家园-2#电气.GQI4
[out]路径是否存在=>路径是否存在True
[out]是否为文件=>是否为文件True
2955.1如果要是获得的路径不存在,就进行下一步
[in]如果【值/表达式】False
296不符合条件,跳过。
2965.2如果/否则判断条件:$={是否为文件}
[in]如果【值/表达式】True
296执行 True 分支, 共 1 步骤
2965.2.0提取文件路径信息得到所在目录、扩展名
[in]失败后停止【值/表达式】True
[in]完整路径【值/表达式】G:\OneDrive - 科技花\Work\青山绿水家园1.2.3.6.7\成果文件\青山绿水家园-2#电气.GQI4
[out]所在文件夹路径=>文件所在目录G:\OneDrive - 科技花\Work\青山绿水家园1.2.3.6.7\成果文件
[out]扩展名=>文件扩展名.GQI4
2965.3运行脚本使用Python对文件名进行正则匹配解析
[in]脚本内容【值/表达式】python "C:\Users\lchao\AppData\Local\Temp\quicker_eff8b9c1-3936-4120-b7b0-a743238c2a16.py" "G:\OneDrive - 科技花\Work\青山绿水家园1.2.3.6.7\成果文件\青山绿水家园-2#电气.GQI4"
[in]脚本类型【值/表达式】CMD_K
[in]扩展名【无输入】
[in]使用指定软件【无输入】
[in]命令行参数模板【无输入】%FILE%
[in]以管理员身份运行【值/表达式】False
[in]等待进程结束【值/表达式】True
[in]文件编码【值/表达式】utf-8
[in]工作目录【值/表达式】
[in]控制台输出编码【值/表达式】oem
[out]控制台输出=>Python脚本输出Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.\r\n
8565.4提取JSON内容$={Python脚本输出} => {时间} {前缀} {标题}...
[in]失败后停止【值/表达式】True
[in]输入【值/表达式】Python was not found; run without arguments to install from the Microsoft Store, or disable this shortcut from Settings > Manage App Execution Aliases.\r\n
857异常:Unexpected character encountered while parsing value: P. Path '', line 0, position 0.
在 Newtonsoft.Json.JsonTextReader.ParseValue()
在 Newtonsoft.Json.Linq.JToken.ReadFrom(JsonReader reader, JsonLoadSettings settings)
在 Newtonsoft.Json.Linq.JToken.Parse(String json, JsonLoadSettings settings)
在 Quicker.Domain.Actions.X.BuiltinRunners.Text.JsonExtractStep.<>c__DisplayClass40_0.rSSwFcx5Qos()
在 Quicker.Domain.Actions.X.XActionHelper.ExecuteCommonAction(ActionExecuteContext context, ActionStep step, XAction action, Func`1 actionFunc, Action successAction, Action failAction, StepInParamDef stopIfErrorParam, StepOutParamDef isSuccessOutputParam)
873步骤(sys:jsonExtract)执行失败,原因:Unexpected character encountered while parsing value: P. Path '', line 0, position 0.
879停止动作:Unexpected character encountered while parsing value: P. Path '', line 0, position 0.
879检测到了中止标志(OperationFailed),停止后续步骤执行。
879检测到了中止标志(OperationFailed),停止后续步骤执行。
879动作结束
回复主贴