繁体   English   中英

如何在python中将列表写入文本文件?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM