在Python中读取和写入文件中的数组

时间:2017-07-18 13:33:56

标签: python python-3.x

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

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

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

3 个答案:

答案 0 :(得分:0)

如果您不想使用jsonpickle,则可以执行此操作。您可以将对象转储为文本项,并使用ast.literal_eval

将它们作为对象加载

第1步:写入文件

import ast

items = ['foo', 'bar']
with open('ds.txt', 'w') as f:
    f.write(str(items))   

第2步:阅读和追加新项目

new_items = [('a'), ('b'), ('c')]    
with open('ds.txt', 'r') as f:
    f_items = ast.literal_eval(f.read())  

print(f_items)
# ['foo', 'bar']

f_items = f_items + [x[0] for x in new_items]
print(f_items)
# ['foo', 'bar', 'a', 'b', 'c']

现在,您可以重复步骤1以回写文件。

答案 1 :(得分:0)

如果要在文件末尾写入内容,则需要以下代码:

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 :(得分:0)

以字符串形式读取文件

myString = f.read()

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

a = myString.split(',')

更快的方法是

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

获得长度

len(a)

追加

a.append("thing")

要附加到文件,您必须以追加模式打开它。这由open方法

中的第二个参数表示
f = open(filename, 'a')
f.write(",thing")