【问题标题】:Reading and writing an array in a file in Python在 Python 中读取和写入文件中的数组
【发布时间】:2017-07-18 13:33:55
【问题描述】:

我在 .txt 文件中有一个数组。我想做的是

  1. 读取这个数组的长度
  2. 附加此数组
a=[('a'),('b'),('c')]
f=open("file.txt","w+")
f.append(a[0])

我找不到像使用数组一样使用我的 txt 文件的方法。有没有可能这样做?

【问题讨论】:

  • 您能否提供包含预期结果的minimal reproducible example
  • 您可以使用 json 代替常规文本文件。
  • 您尝试附加到文件对象的任何特殊原因?是的,如果您不介意丢失元组,我会推荐 json。
  • 您确实意识到,不是吗,a 的值中的那些括号什么也没做——它们没有创建任何元组。另外,请更具体地说明“像数组一样使用我的 txt 文件”是什么意思。

标签: python python-3.x


【解决方案1】:

如果你想在文件末尾写东西,你需要下面的代码:

with open("file.txt","a") as f:
    f.write("insert text here")

一般来说,with open("file.txt","a") as f: 语法更可取,因为不需要手动关闭f

然后您可以将附加在新行上的每个项目写成这样:

def fileappend(filename,string):
    with open(filename,"a") as f:
        f.write(string)

这将允许您提取字符串:

with open("file.txt","r") as f:
    l=[x[:-1] for x in f.readlines()]

l 然后将包含附加到文件的项目列表,诚然不能包含换行符。

【讨论】:

    【解决方案2】:

    以字符串形式读取文件

    myString = f.read()
    

    在给定字符上拆分字符串并将其存储为数组(技术上是列表)。您没有提供有关文件格式的详细信息,因此我假设它是用逗号分隔的。

    a = myString.split(',')
    

    一种更快的方法是

    a = f.read().split(',')
    

    获取长度

    len(a)
    

    追加

    a.append("thing")
    

    要附加到文件,您必须以附加模式打开它。这由open 方法中的第二个参数表示

    f = open(filename, 'a')
    f.write(",thing")
    

    【讨论】:

    • 但是该方法实际上并没有将东西附加到文件中,这就是 OP 所追求的......
    • 我不清楚 OP 的指示。我已经编辑了答案以包括附加到文本文件。
    猜你喜欢
    • 2012-11-12
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2021-06-26
    • 2014-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多