Python上创建的wierd文件名

时间:2012-04-30 08:22:49

标签: python

我有一个带有html / doc文件列表的txt文件,我想用python下载它们并将它们保存为1.html,2.doc,3.doc,...

http://example.com/kran.doc
http://example.com/loj.doc
http://example.com/sks.html

我已经设法创建功能完备的脚本,除了python将总是在新创建的文件的末尾添加问号(如果你从linux看),如果从windows文件名称看起来就像 5CFB43~ X

import urllib2
st = 1;
for line in open('links.txt', 'r'):
        u = urllib2.urlopen(line)
        ext = line.split(".")
        imagefile = str(st)+"."+ext[-1]
        #file created should be something.doc but its something.doc? -> notice question mark
        fajl = open(imagefile, "w+")
        fajl.write(u.read())
        fajl.close()
        print imagefile
        st += 1

3 个答案:

答案 0 :(得分:1)

行终止符是两个字符,而不是一个。

for line in open('links.txt', 'rU'):

但现在不行了。

答案 1 :(得分:1)

使用line.strip()代替line

答案 2 :(得分:-1)

这是因为以这种方式阅读的行最后会以'\n'结尾,因此?

只需在循环开头添加以下内容:

if line.endswith('\n'):
    line = line[:-1]

正如AKX在评论中指出的那样,只是:

line = line.rstrip('\r\n')

所以你涵盖任何类型的结尾。