PyQt5 QFileDialog含希腊字符路径异常问题求助
解决PyQt5 QFileDialog处理含希腊字符路径的异常问题
一、确认路径合法性
示例路径C:/Users/cpapp/OneDrive/Υπολογιστής是合法的——Υπολογιστής是希腊语“桌面”的对应名称,当OneDrive同步桌面文件夹时,路径会自动使用该语言名称,所以路径本身没有问题。
你可以通过以下方式验证:
- 打开命令提示符,执行
echo %USERPROFILE%\Desktop,查看输出路径是否与示例一致; - 直接在文件资源管理器中查看桌面文件夹的属性,确认实际路径。
二、注册表修改步骤
问题根源通常是Windows注册表中桌面路径的键值类型或编码异常,按以下步骤修复:
- 按下
Win+R,输入regedit打开注册表编辑器; - 定位到注册表项:
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders; - 找到名为
Desktop的键值:- 右键选择“修改”,确保键值类型为
REG_EXPAND_SZ(而非REG_SZ); - 数值数据填写正确的桌面路径,推荐使用系统环境变量形式(如
%USERPROFILE%\Desktop),避免直接输入含特殊字符的路径;
- 右键选择“修改”,确保键值类型为
- 重复上述步骤检查
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders下的Desktop键值; - 修改完成后,重启资源管理器(任务管理器中找到“Windows资源管理器”,右键重启)或重启电脑。
三、代码层面临时 workaround
如果不想修改注册表,可在代码中手动指定Unicode编码的路径:
from PyQt5.QtWidgets import QFileDialog, QApplication import sys app = QApplication(sys.argv) # 直接传入含希腊字符的初始目录 file_path, _ = QFileDialog.getOpenFileName( parent=None, caption="选择文件", directory="C:/Users/cpapp/OneDrive/Υπολογιστής" ) print(file_path)
内容的提问来源于stack exchange,提问作者Chris P
相关产品推荐
相关产品推荐

