我有一长串文章标题存储在文本文件中,我想循环浏览列表,创建文本文件,每个文件都根据列表标题。
所以在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)打开文件,但没有快乐......我有点迷失了!
答案 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()]