Python如何访问JAR文件内文件夹并写入内容?
解决往JAR文件内指定目录写入文件的问题
看起来你已经搭好了基础代码框架,但目前的实现有两个关键问题:一是会把India.txt直接放到JAR的根目录,而非目标org文件夹;二是使用'w'模式会覆盖整个JAR文件,导致原有org文件夹的内容丢失。下面是修正后的代码,完美实现你的需求:
import zipfile def write_to_jar_org_folder(jar_file, source_file): """将指定文件写入JAR包内的org文件夹""" # 使用'a'模式追加内容,避免覆盖原有JAR内的文件 with zipfile.ZipFile(jar_file, 'a') as zf: # 通过arcname参数指定文件在JAR内部的路径:org/India.txt zf.write(source_file, arcname=f'org/{source_file}') if __name__ == "__main__": jar_path = 'D:/pyt/z.jar' target_file = 'India.txt' write_to_jar_org_folder(jar_path, target_file)
核心修改说明:
- 模式替换:把
'w'改成'a','w'会清空原有JAR重新创建,'a'则是在现有JAR基础上追加文件,保留原有的org文件夹结构。 - 指定内部路径:通过
arcname参数明确文件在JAR内的存放位置,'org/India.txt'就能把文件精准放到目标目录下。 - 自动资源管理:用
with语句替代手动close(),Python会自动处理资源释放,代码更简洁安全。
如果你的India.txt不在当前脚本的工作目录,记得传入完整的文件路径作为source_file参数哦。
内容的提问来源于stack exchange,提问作者user3930142
相关产品推荐
相关产品推荐

