python - 在 Windows 中将希伯来语文件名作为命令行参数传递

标签 python unicode command-line-arguments hebrew

我有一个小型 Python 程序。我使用 Windows 注册表来通过右键单击上下文菜单来打开文件。我的注册表项:

C:\Users\me\projects\mynotepad\notepad.exe "%1"

当我尝试使用右键单击上下文菜单打开具有希伯来语名称的文件时,我得到的文件名是问号,并且在尝试获取文件大小时遇到​​异常。

这是我的代码:

file_name = sys.argv[1]
file_size = os.path.getsize(unicode(file_name))

我已经尝试过这个:

file_name = sys.argv[1].decode("cp1255").encode('utf-8')
file_size = os.path.getsize(unicode(file_name))

但是没有成功。

有什么建议吗?

最佳答案

事实证明这是一个问题。请参阅here的解决方案。您需要借助 Windows API 来获取参数。

关于python - 在 Windows 中将希伯来语文件名作为命令行参数传递,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11677130/

相关文章:

Python 初学者 - 使用 lambda 函数对元组进行排序

windows - 如何以跨平台友好的方式处理 C/C++ 中的 Unicode 字符串?

c++ - 解析函数中的命令行参数

python - cx_Oracle 'ORA-01843: not a valid month' 带有 unicode 参数

unit-testing - 如何测试命令行参数处理

python - 有没有一种好方法来处理稍后可能导入的脚本上的命令行选项?

python - 从 scipy.sparse.linalg.cg 中的回调打印当前残差

python - 如何在Django中上传多个文件

Python 线程 - 意外输出

unicode - 我如何在 matplotlib 中使用普通话字符?