簡體   English   中英

為什么我的代碼不斷停止?

[英]Why does my code keep stopping?

我編寫了一個Python腳本,該腳本讀取一個文本文件,然后轉到一個url,並將文本文件中的擴展名添加到該url。 問題在於腳本在完成讀取文件之前會不斷停止。 我不知道為什么。

import urllib
f = open("extension/1.txt", 'r')

for x in f.readline():    
    a = f.readline()
    url = "http://www.link.com/whatever/%s" % a
    print url
    urllib.urlretrieve(url, a) 

通過for x in f.readline():調用for x in f.readline(): ,您將遍歷作為文件首行的string ,然后通過a = f.readline()為第一行中的每個字符換行。 a = f.readline() 我不認為這是您的意圖。

file對象f本身是可迭代的,因此您只需執行以下操作:

for line in f:
    value = line.rstrip('\n')
    url = "http://www.link.com/whatever/%s" % value
    print url
    urllib.urlretrieve(url, value)  # Not sure why you want to send value (your a) here

您的代碼執行以下操作:

  1. 從文件中讀取一行( f.readline() )。
  2. 對於該行中的每個字符( for x in f.readline() ),讀取另一行( a = f.readline() )並進行處理。

因此,它將僅處理與文件第一行中的字符一樣多的行,並且將永遠不會處理第一行。

您可能希望將該循環編寫為:

with open("extension/1.txt") as f:
    for a in f:
        a = a.strip()
        url = "http://www.link.com/whatever/%s" % a
        print url
        urllib.urlretrieve(url, a) 

也許像這樣一開始閱讀所有內容:

fp = open(the_file)
lines = fp.readlines()
fp.close()

for line in lines:
    do something

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM