【问题标题】:Best way to write and read .txt in Python在 Python 中编写和读取 .txt 的最佳方式
【发布时间】:2020-06-03 16:20:55
【问题描述】:

我需要创建一个文件来保存一些变量;我有这个

# variables 
A = 2
B = 34
C = "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)如何读取该文件中的多个变量并初始化它们 P.D:它不一定是.txt,但这是我建议使用的默认格式。

谢谢!

【问题讨论】:

  • 有很多序列化方法,什么是“最好的”取决于您计划以后如何使用数据。 Python 自己的pickle 是一个不错的选择,它涵盖了仅用于python 的各种数据结构。 JSON 是一个很好的通用序列化器。 CSV 在表格数据中很受欢迎。 SQL 数据库非常适合具有丰富查询能力的复杂表格数据。用于结构化文本的 XML/HTML。名单还在继续……!
  • 如果你有空闲时间我建议你学习 sqlite 和 json

标签: python python-3.x


【解决方案1】:

为了回答您的第一个问题,我认为最好使用 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']

【讨论】:

    【解决方案2】:

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

    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 语句是一个块执行context manager,无论在其范围内发生什么,它都会关闭文件。有时,需要使用简单的f.open,但这通常包含在 try/except 中。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-20
      • 1970-01-01
      • 2016-07-17
      • 1970-01-01
      相关资源
      最近更新 更多