Python:从文章标题列表中创建多个文本文件

时间:2011-08-23 10:15:20

标签: python

我有一长串文章标题存储在文本文件中,我想循环浏览列表,创建文本文件,每个文件都根据列表标题。

所以在C:/articles.txt里面我有......

星期一 星期二 星期三 星期四 等......

我希望生成标题为...的文本文件

Monday.txt Tuesday.txt 等...

实际文件名不是一周中的几天,但是我将通过Google的翻译API传递数千个翻译文档,所以我猜文本需要是unicode,这会导致问题吗?

到目前为止,我有:

titles = open("C:/titles.txt",'r')

for lines in titles:       
    output = open((lines)+'.txt','w')
    output.write(lines.strip('\n'))
    output.close()

titles.close()

但是我收到了错误:

Traceback (most recent call last):
File "C:/Python27/createarticle.py", line 5, in <module>
output = open((lines)+'.txt','w')
IOError: [Errno 22] invalid mode ('w') or filename: 'Monday\n.txt'

我尝试用repr(lines)和str(lines)打开文件,但没有快乐......我有点迷失了!

5 个答案:

答案 0 :(得分:2)

您需要使用lines.strip()从文件名中删除\ n(新行字符)。

output = open((lines.strip())+'.txt','w')

答案 1 :(得分:1)

只关注特定错误,您的文件名中嵌入了“\ n”。尝试将(lines)+'.txt'替换为lines.strip() + '.txt'

答案 2 :(得分:1)

在每行“\ n”的末尾都有一个新的行符号。您必须删除它,因为名称变为“Monday \ n.txt”并且“\”对于文件名无效。

答案 3 :(得分:1)

到目前为止,您似乎正在创建一个名称中带有换行符的文件(类似于Monday\n.txt。在添加.txt扩展名之前,您需要删除()文件的名称,例如这个:

for lines in titles.readlines():
    output = open((lines.strip())+'.txt','w')
    (...)

答案 4 :(得分:1)

您可以使用列表理解来读取行并删除“n”:

titles = [t.strip("\n") for t in open("/etc/passwd").readlines()]