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,企业供应链,业务财务一体化老兵
评论