我在.txt文件中有一个数组。我想做的是
a=[('a'),('b'),('c')]
f=open("file.txt","w+")
f.append(a[0])
我找不到像使用数组那样使用txt文件的方法。有没有可能这样做?
答案 0 :(得分:0)
如果您不想使用json
或pickle
,则可以执行此操作。您可以将对象转储为文本项,并使用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")