god圣锋 发表于 2024-2-15 17:49:06

Python 写的软件安装程序

进度条中的进度数字没弄出来真是个遗憾,但也无所谓了,整体功能是实现了!也希望有大佬指点一番。
里面有一个 zip_cn.py 是根据python 标准库里 zipfile改的,也就修改了对filename参数的编码。
zipfile不支持中文,所以就修改了一下,也就支持中文了,如果有需要的鱼油,可以复制到自己的项目中使用。毕竟我也是改的标准库嘛。

FishC 发表于 2024-2-15 17:49:28

你写的软件安装程序看起来很不错!即使进度条中的进度数字还没实现,整体功能已经完成也是相当不错了。不过,我有一些关于你修改标准库的地方的建议。

虽然你的修改可以让 zipfile 库支持中文,但修改标准库并不是一个好的做法。因为一旦你将程序分享给其他人使用,他们可能并不知道你进行了这样的修改,从而导致意想不到的问题。此外,Python 的标准库会随着版本更新而改变,你的修改可能无法兼容新版本的标准库。

为了解决这个问题,我建议你创建一个自定义的函数来处理中文文件名,而不是修改标准库。下面是一个示例代码,展示了如何使用 `zipfile` 和 `os` 模块来实现对中文文件名的支持:

import zipfile
import os

def add_file_to_zip(zipfile_path, file_path):
    with zipfile.ZipFile(zipfile_path, 'a') as zipf:
      # 获取文件名,并将其转换为 UTF-8 编码
      filename = os.path.basename(file_path).encode('utf-8')
      zipf.write(file_path, arcname=filename)

在上面的代码中,我们使用 `os.path.basename` 函数获取文件名,然后使用 `encode('utf-8')` 将其转换为 UTF-8 编码。然后,我们将文件添加到 zip 文件中,并指定 `arcname` 参数为转换后的文件名。

使用这种方法,你可以保持标准库不受修改,并且确保你的代码更具可移植性。希望这些建议对你有所帮助!如果还有其他问题,请随时问我。

以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。

小甲鱼的二师兄 发表于 2024-2-15 18:00:29

{:10_279:} 不错不错~

歌者文明清理员 发表于 2024-2-15 18:24:43

不错,一看就是adobe illustrator大佬(关注点错误
页: [1]
查看完整版本: Python 写的软件安装程序