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

时间:2017-03-19 23:08:14

标签: 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)

2 个答案:

答案 0 :(得分:0)

您可以使用str.join加入列表中的所有字符串:

my_list = ['a', 'few', 'words']
my_string = ' '.join(my_list)

在这里,我使用空格作为分隔符加入my_list中的所有字符串。 结果是一个字符串('a few words'),可以写入文件。

答案 1 :(得分:0)

您可以使用pickle将对象转换为字符串,然后将字符串转义为pickle字符串,以便结果为单行(存储在文件中时)。

python 2X方法是:

prod

解码文件中的pickle对象以获取列表。像这样的东西

ENV = os.getenv('ENV', 'prod')

SOME_SETTING = 'no.png'

if ENV == 'local':
    import settings_local # could override SOME_SETTING
else:
    import settings_prod # could also override SOME_SETTING