[英]How to write a list to a text file in python?
我正在艰难地学习python学习教程,并且我试图制作一个包含一些基本概念的我自己的项目。 我们还没有介绍循环,因此作为一个预警,如果您要在回答中包括一个循环,请在假设我以前从未见过的情况下进行循环:)
这是我的代码,在我尝试将列表写入文件之前一直有效。 我收到写期望字符串的错误消息。 有什么办法欺骗写成认为该列表是一个字符串吗?
from sys import argv
script, file1 = argv
def rewind(f):
f.seek(0)
txt = open(file1, 'a+')
txt.write(raw_input("What would you like to add to the file?:\n"))
rewind(txt)
text = txt.read()
print text
def breakwords(f):
split_words = f.split(' ')
return split_words
brkwrds = breakwords(text)
print brkwrds
def sort_words(f):
sorted_words = sorted(f)
return sorted_words
sw = sort_words(brkwrds)
rewind(txt)
txt.truncate()
txt.write(sw)
您可以使用str.join
连接列表中的所有字符串:
my_list = ['a', 'few', 'words']
my_string = ' '.join(my_list)
在这里,我使用空格作为分隔符来连接my_list
所有字符串。 结果是可以写入文件的字符串( 'a few words'
)。
您可以使用pickle将对象转换为字符串,然后使用字符串对腌制后的字符串进行转义,以使结果为一行(当存储在文件中时)。
python 2X方法是:
from sys import argv
script, file1 = argv
import pickle
def rewind(f):
print(f.seek(0))
f.seek(0)
txt = open(file1, 'a+')
txt.write(raw_input("What would you like to add to the file?:\n"))
rewind(txt)
text = txt.read()
print text
def breakwords(f):
split_words = f.split(' ')
return split_words
brkwrds = breakwords(text)
print brkwrds
def sort_words(f):
sorted_words = sorted(f)
return sorted_words
sw = sort_words(brkwrds)
rewind(txt)
txt.truncate()
txt.write(pickle.dumps(sw).encode("string-escape")+"\n")
txt.close()
解码文件中的腌制对象以重新获得列表。 像这样的东西
my_list_resurrected=pickle.loads(line_in_file.decode("string-escape"))
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.