2012-04-30 62 views
1

我有一個帶有html/doc文件列表的txt文件,我想用python下載並保存爲1.html,2.doc,3.doc,...Python創建文件的名字

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

我已經成功地創建功能全面的腳本,除了蟒蛇將問號八方通添加到新創建的文件的末尾(如果從Linux的外觀),如果你從窗戶看文件名會像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 

回答

1

線路終端爲兩個個字符,不是一個。

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

但現在不行了。

-1

這是因爲線閱讀這種方式將在年底結束與'\n',因此?

只需添加以下在你的循環的開頭:

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

或者像AKX中指出,評論,只是:

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

所以你覆蓋任何種類的行結束。

+0

爲什麼不'線= line.rstrip( 「\ r \ n」)'無'if'條款?它感覺更優雅。 – AKX

+0

這是工作完美謝謝:)將接受我什麼時候能夠 – ewooycom

+0

@AKX - 好點。我喜歡。 – rodrigo

1

上工作line.strip()代替line