我正在通过学习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)
答案 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