吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1165|回复: 15
收起左侧

[求助] python执行外部命令遇到特殊字符的路径会乱码怎么办?

[复制链接]
netspirit 发表于 2020-9-19 02:47
本帖最后由 netspirit 于 2020-9-19 03:06 编辑

我试过通过python调用一个命令行图片压缩工具压缩图片
但是我遇到了一个问题:多国语言和特殊符号的路径在调用时会变成乱码

比如:
我执行convert.exe -resize 1000x1000 -quality 0 "f:\藤田恵美 - 2010 - 藤田恵美・Le Couple Best\pic.jpg" c:\xxxxx1.jpg
convert.exe: unable to open image `F:\����{�� - 2010 - ����{��?Le Couple Best\pic.jpg': Invalid argument

(上面实际路径更长 我为了方便看写得简单了一些)
因为中间有个・结果就一直出错
我试了一些方法 包括os.system subprocess.call win32api.ShellExecute 都会遇到这个问题


怎样才能让程序就算遇到特殊路径也能正常执行命令啊?


测试了一下在命令行里面执行也会出错 貌似这种中文字符或者日文字符根本就不能出现在命令行?

FAIL formats: can't open input file F:\藤田恵美 - 2017 - 東京ロンリー?ナイト\東京ロンリー?ナイト - 藤田恵美.flac': Invalid argument



就一个中文/日文的点 看来吾爱破解也显示不出来啊

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

chen4321 发表于 2020-9-19 07:41
加上  “ ”
简单来说就是最后还是要调用cmd
fortytwo 发表于 2020-9-19 07:44
尝试用列表遍历该文件夹下文件,看返回的文件名是什么,根据那个文件名去操作文件吧。这个是我的解决思路。要不就找找片假名过滤的python demo 应该是比较好找的(我找过Windows文件命名规则过滤的,虽然写起来简单但是命名规则一个个去输入还是挺麻烦的)
 楼主| netspirit 发表于 2020-9-19 07:58
chen4321 发表于 2020-9-19 07:41
加上  “ ”
简单来说就是最后还是要调用cmd

经过测试cmd下面遇到这个中文的的点也会导致文件路径无法识别 一直都加了引号的 没用
 楼主| netspirit 发表于 2020-9-19 07:59
SailZhao520 发表于 2020-9-19 07:44
尝试用列表遍历该文件夹下文件,看返回的文件名是什么,根据那个文件名去操作文件吧。这个是我的解决思路。 ...


实测python自己的命令都可以正常操作 但是所有调用操作系统的操作那个文件的 就不能识别路径 比如 os.system和win32api
但是我需要调用外部exe打到某种功能啊。。。。
头像被屏蔽
yike911 发表于 2020-9-19 09:15
提示: 作者被禁止或删除 内容自动屏蔽
 楼主| netspirit 发表于 2020-9-19 09:49
yike911 发表于 2020-9-19 09:15
有些字符是非法的,需要过滤。。。

过滤了那怎么使用命令啊 比如我用命令行压缩图片 但是图片路径有特殊字符 如果把特殊字符过滤了那不就找不到文件了....
夏日已末 发表于 2020-9-19 09:49
在引号前面加个r试试看,例如r"c:\xxxxx1.jpg"
倾情 发表于 2020-9-19 09:58
1、可以用正则进行格式化之后再写入
2、加上反斜杠“c:\\Desktop\\xxx\\xx”
3、加上禁止转义字符r"c:\Desktop\xxx\xx"
 楼主| netspirit 发表于 2020-9-19 10:00
夏日已末 发表于 2020-9-19 09:49
在引号前面加个r试试看,例如r"c:\xxxxx1.jpg"

感谢回答 我不仅这些方法都试过了 甚至直接在cmd里面输入过那条命令 结果路径识别失败 就是转换有特殊字符路径下的jpg文件
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-26 12:52

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表