You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PyQt5 QFileDialog含希腊字符路径异常问题求助

解决PyQt5 QFileDialog处理含希腊字符路径的异常问题

一、确认路径合法性

示例路径C:/Users/cpapp/OneDrive/Υπολογιστής是合法的——Υπολογιστής是希腊语“桌面”的对应名称,当OneDrive同步桌面文件夹时,路径会自动使用该语言名称,所以路径本身没有问题。

你可以通过以下方式验证:

  • 打开命令提示符,执行echo %USERPROFILE%\Desktop,查看输出路径是否与示例一致;
  • 直接在文件资源管理器中查看桌面文件夹的属性,确认实际路径。

二、注册表修改步骤

问题根源通常是Windows注册表中桌面路径的键值类型或编码异常,按以下步骤修复:

  1. 按下Win+R,输入regedit打开注册表编辑器;
  2. 定位到注册表项:HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders;
  3. 找到名为Desktop的键值:
    • 右键选择“修改”,确保键值类型为REG_EXPAND_SZ(而非REG_SZ);
    • 数值数据填写正确的桌面路径,推荐使用系统环境变量形式(如%USERPROFILE%\Desktop),避免直接输入含特殊字符的路径;
  4. 重复上述步骤检查HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders下的Desktop键值;
  5. 修改完成后,重启资源管理器(任务管理器中找到“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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 09:12:49