写点什么

Python 文件写入不稳定的处理方法

作者:麦兜
  • 2024-01-26
    浙江
  • 本文字数:807 字

    阅读完需:约 3 分钟

你可以尝试以下几种方法来解决文件写入不稳定的问题:

1. 使用 with 语句强制刷新缓冲区

with open(file_path, 'w') as f:    f.write(file_content)    f.flush()  # 强制刷新缓冲区,确保内容被写入
复制代码

2. 强制指定文件编码

with open(file_path, 'w', encoding='utf-8') as f:  # 指定文件编码为 UTF-8    f.write(file_content)
复制代码

3. 先删除再写入文件

import os
# 删除文件(如果存在)if os.path.exists(file_path): os.remove(file_path)
# 写入新文件with open(file_path, 'w') as f: f.write(file_content)
复制代码

4. 强制覆盖写入(强制写入)

with open(file_path, 'w') as f:    f.write(file_content)
复制代码


这些方法中的任何一种都可以在文件写入时提供更加强制性的操作,从而可能解决不稳定的写入现象。请根据你的实际需求和代码逻辑选择合适的方法.


如下是我实际使用的一个方法:

@frappe.whitelist()def writeFile(**args):    try:        print('开始文件写入')        file_type = args.get('file_type')        file_content = args.get('file_content')        write_path = args.get('write_path')        input_file_name = args.get('input_file_name')
# 获取当前 app 的路径 app_path = frappe.get_app_path('erpnextcn')
# 拼凑完整文件路径 file_path = f"{app_path}/{write_path}/{input_file_name}.{file_type}"
print(f'文件写入:{file_path}') with open(file_path, 'w') as f: # 将文件内容写入文件中 f.write(file_content) f.flush() # 强制刷新缓冲区,确保内容被写入 print(f'文件写入成功') return "文件写入成功" except Exception as e: error_msg = f"文件写入失败: {str(e)}" print(error_msg) # 输出错误日志 return error_msg
复制代码


用户头像

麦兜

关注

与一只鸟生活在杭州 2023-01-19 加入

企业ERP,企业供应链,业务财务一体化老兵

评论

发布
暂无评论
Python文件写入不稳定的处理方法_麦兜_InfoQ写作社区