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复制代码
 划线
评论
复制
发布于: 刚刚阅读数: 6
麦兜
关注
与一只鸟生活在杭州 2023-01-19 加入
企业ERP,企业供应链,业务财务一体化老兵







    
评论