为了账号安全,请及时绑定邮箱和手机立即绑定

在 Python 中写入和读取 .txt 的最佳方式

在 Python 中写入和读取 .txt 的最佳方式

慕侠2389804 2022-12-20 14:06:57
我需要创建一个文件来保存一些变量;我有这个# variables A = 2B = 34C = "foo"file = open("filename.txt", "w")file.write(A, "/", B, "/", C)file.close()但是,我不确定这是最好的方式,或者至少是最好的“Pythonic”方式来写入文件。我不知道是否/最好先脱离然后再阅读它,或者最好先阅读它,例如file.write(f"A={A}/nB={B}/nC={C}")这是主要问题:我不知道如何在编写后读取多个变量及其最佳方法。在阅读文件中,我想要这样的东西:file = open("filename.txt", "r")# reading variables# variables initialized: A=2, B=34, C="foo"因此,总而言之,我希望能提供一些帮助以找出:1) 写入文件的最佳格式 2) 如何读取该文件中的多个变量并初始化它们 PD:它不一定是 a.txt但它是默认值我建议使用的格式。
查看完整描述

2 回答

?
九州编程

TA贡献1785条经验 获得超4个赞

要回答您的第一个问题,我认为最好使用的格式是一种广泛使用的标准,如 JSON、XML 或 CSV,用于将数据存储到文件中。


首先,这将意味着您自己实现的逻辑更少——所有序列化和反序列化都可以通过 python 中广泛可用的标准库来完成。其次,大多数编程语言中都存在用于解析这些文件的库,因此如果您发现自己必须将这些数据提取到另一个应用程序中,您将永远不会发现自己必须重新实现该逻辑。最后,由于这些库的使用如此广泛,它们经过了大量优化,因此不太可能给您带来任何性能问题。


我自己会推荐 JSON,因为 python 库使它的使用变得如此简单。以下是在 python 中从文件写入和读取 JSON 的示例:


import json


A = 2

B = 34

C = "foo"


# Write to file

obj = {

    'A': A

    'B': B

    'C': C

}

with open("filename.txt", "w") as f:

    json.dump(obj, f)


# Read from file

with open("filename.txt", "r") as f:

    obj2 = json.load(f)


A = obj2['A']

B = obj2['B']

C = obj2['C']


查看完整回答
反对 回复 2022-12-20
?
米脂

TA贡献1836条经验 获得超3个赞

你是对的。这确实是糟糕的设计(因为它与操作系统无关)。


import os


dir = os.path.join('foo', 'bar') 

print(dir)  # prints the proper dir format in Windows, OSX, Linux

此外,您编写文件的方式很好,但它不会关闭文件以防在f.close(). 因此,您应该使用以下内容:


with open(dir, 'r') as f:

    data = f.read()

with 语句是一个块执行上下文管理器,无论在其范围内发生什么,它都会关闭文件。有时,使用 simplef.open是必要的,但这通常包含在 try/except 中。


查看完整回答
反对 回复 2022-12-20
  • 2 回答
  • 0 关注
  • 91 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信