如何将列表的每个元素保存到一个独立的新文件?

时间:2016-04-19 19:17:00

标签: python python-2.7 io

我有一个Pos-tag多个文档的函数,并在列表中打印每个pos-tagged文档,如下所示:

    [u'I\tPP\tI', u'am\tVBP\tbe', u'an\tDT\tan', u'amateur\tJJ\tamateur']
....

    [u'good\tJJ\tgood', u'camera\tNN\tcamera', u'for\tIN\tfor', u'a\tDT\ta', u'good\tJJ\tgood']

如何将每个列表保存或写入新目录中的新.txt文档?,例如:

new_directory
    ---->list1.txt
    ....
    ---->listn.txt

现在,如果我们查看每个新文件,它将如下所示:

good JJ good
camera NN camera
for IN for
a DT a
good JJ good

先谢谢你们。

1 个答案:

答案 0 :(得分:2)

作为一种方法,你可以迭代你的列表(我假设它们在这里的嵌套列表中),然后打开一个文件并将该列表的内容写入文件。

您可以使用适当的分隔符对路径进行硬编码,但我在这里使用了os.path.join,因为它通常很适合使用它。没有提到你如何指定新目录。您可以从sys.argv,文件对话框,输入或任何其他众多选项中获取此信息。

import os

nested_list=[
    [u'I\tPP\tI', u'am\tVBP\tbe', u'an\tDT\tan', u'amateur\tJJ\tamateur'],
    [u'good\tJJ\tgood', u'camera\tNN\tcamera', u'for\tIN\tfor', u'a\tDT\ta', u'good\tJJ\tgood']
]

for i, a_list in enumerate(nested_list):
    #new_dir_path is path to dir you want.
    path = os.path.join(new_dir_path, "list%d.txt" % i) #or "list{}.txt".format(i)
    with open(path, "w") as f:
        for item in a_list:
            f.write(item+"\n") #\n if you want each item on a new line