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

Python:从文章标题列表创建多个文本文件,python,Python,我在一个文本文件中存储了一个很长的文章标题列表,我想在列表中循环,创建文本文件,每个文件都根据列表命名 所以在C:/articles.txt中我有 星期一 星期二 星期三 星期四 等等 我希望生成标题为 星期一.txt 星期二.txt 等等 实际的文件名不是一周中的几天,而是我正在通过Google的translate API传递的数千个翻译文档,所以我猜文本需要是unicode,这会导致问题吗 到目前为止,我已经: titles = open("C:/titles.txt",'r') for

我在一个文本文件中存储了一个很长的文章标题列表,我想在列表中循环,创建文本文件,每个文件都根据列表命名

所以在C:/articles.txt中我有

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

我希望生成标题为

星期一.txt 星期二.txt 等等

实际的文件名不是一周中的几天,而是我正在通过Google的translate 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'
回溯(最近一次呼叫最后一次):
文件“C:/Python27/createarticle.py”,第5行,在
输出=打开((行)+'.txt',w')
IOError:[Errno 22]无效模式('w')或文件名:“星期一\n.txt”
我试着用repr(行)和str(行)打开文件,但没有乐趣…我有点迷路了

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

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


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

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

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

每行“\n”末尾都有一个新行符号。您必须去掉它,因为名称变为“Monday\n.txt”,而“\”对于文件名无效。

到目前为止,您似乎正在创建一个名称中有换行符的文件(例如
Monday\n.txt
。在添加.txt扩展名之前,您需要去掉()文件名,如下所示:

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

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

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

您可以使用列表理解来阅读这些行并去除“n”:

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

您可以使用列表理解来阅读这些行并去除“n”:

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

对于标题中的行:
或者甚至
对于标题中的标题:
不是一个更具描述性的变量名吗?您一次只能得到一行/标题,对吗?对于标题中的行:或者甚至
对于标题中的标题:
不是一个更具描述性的变量名吗?您一次只能得到一行/标题,对吗?答案是肯定的反斜杠实际上不是文件名的一部分--换行符是文件名的一部分。我不知道换行符在windows文件名中是否有效,但反斜杠和换行符在*nix上都是有效的文件名字符。反斜杠实际上不是文件名的一部分--换行符是文件名的一部分。我不知道换行符在windows文件名中是否有效filename,但反斜杠和换行符都是*nix上的有效文件名字符。