Dieser Fehler ist schwer zu beschreiben, weil ich nicht herausfinden kann, wie die Schleife die Methoden readline()
und readlines()
betrifft. Wenn ich versuche, den ersten zu verwenden, bekomme ich diese unerwarteten Traceback-Fehler. Wenn ich letzteres versuche, läuft mein Code und nichts passiert. Ich habe festgestellt, dass der Fehler in den ersten acht Zeilen liegt. Die ersten paar Zeilen der Topics.txt
Datei werden gepostet.readlines() Fehler mit for-Schleife in Python
Code
import requests
from html.parser import HTMLParser
from bs4 import BeautifulSoup
Url = "https://ritetag.com/best-hashtags-for/"
Topicfilename = "Topics.txt"
Topicfile = open(Topicfilename, 'r')
Line = Topicfile.readlines()
Linenumber = 0
for Line in Topicfile:
Linenumber += 1
print("Reading line", Linenumber)
Topic = Line
Newtopic = Topic.strip("\n").replace(' ', '').replace(',', '')
print(Newtopic)
Link = Url.join(Newtopic)
print(Link)
Sourcecode = requests.get(Link)
Als ich dieses Stück hier laufen, den die URL nach dem ersten Zeichen des line.For Beispiel voran druckt, druckt es als 2https: //ritetag.com/best -Hashtags-für/4https: //ritetag.com/best-hashtags-for/Hhttps: //ritetag.com/best-hashtags-for/ etc. für 24 Stunden Fitness.
Topics.txt
- 21st Century Fox
- 24 Hour Fitness
- 2K Games
- 3M
Full Error
Leselinie 1 24HourFitness 2https: //ritetag.com/best-hashtags-for/4https: //ritetag.com/best-hashtags-for/Hhttps: //ritetag.com/best-hashtags- für/ohttps: //ritetag.com/best-hashtags-for/uhttps: //ritetag.com/best-hashtags-for/rhttps: //ritetag.com/best-hashtags-for/Fhttps: // ritetag. com/beste-hashtags-for/ihttps: //ritetag.com/best-hashtags-for/thttps: //ritetag.com/best-hashtags-for/nhttps: //ritetag.com/best-hashtags-for/ ehttps: //ritetag.com/best-hashtags-for/shttps: //ritetag.com/best-hashtags-for/s
Traceback (letzter Aufruf zuletzt): Datei "C: \ Users \ Caden \ Desktop \ Programme \ LususStudios \ AutoDealBot \ HashtagScanner.py ", Zeile 17, in Sourcecode = requests.get (Link) Datei "C: \ Python34 \ lib \ Site-Pakete \ Anfragen-2.10.0-py3.4.egg \ requests \ api.py", Zeile 71, in get Anfrage zurücksenden ('get', url, params = params, ** kwargs) Datei "C: \ Python34 \ lib \ site-Pakete \ requests-2.10.0-py3.4.egg \ requests \ api.py", Zeile 57 , in Anfrage return session.request (Methode = Methode, URL = URL, ** kwargs) Datei "C: \ Python34 \ lib \ Site-Pakete \ Anfragen-2.10.0-py3.4.egg \ Anfragen \ Sitzungen. py ", Zeile 475, in Anfrage resp = self.send (prep, ** send_kwargs) Datei" C: \ Python34 \ lib \ Site-Pakete \ Anfragen-2.10.0-py3.4.egg \ Anfragen \ Sitzungen .py ", Zeile 579, in send adapter = self.get_adapter (url = request.url) Datei" C: \ Python34 \ lib \ site-Pakete \ requests-2.10.0-py3.4.egg \ requests \ sessions.py ", Linie 653, in get_adapter raise InvalidSchema (% url "Keine Anschlussadapter wurden für '% s' gefunden") requests.exceptions.InvalidSchema: Keine Anschlussadapter wurden für ‚2https gefunden: //ritetag.com/best- Hashtags-für/4https: //ritetag.com/best-hashtags-for/Hhttps: //ritetag.com/best-hashtags-for/ohttps: //ritteag.com/best-hashtags-for/uhtps: // ritetag.com/best-hashtags-for/rhttps://ritetag.com/best-hashtags-for/Fhttps://ritetag.com/best-hashtags-for/ihttps://ritetag.com/best-hashtags- for/thttps: //ritetag.com/best-hashtags-for/nhttps: //ritetag.com/best-hashtags-for/ehttps: //ritetag.com/best-hashtags-for/shttps: // ritetag.com/best-hashtags-for/s
Die Datei wird in einem Rutsch mit 'Line = Topicfile.readlines()' gelesen. Einfach diese Linie eliminieren. – dawg
Unter der Haube "konsumiert" die * readlines * -Methode die Datei. Wenn sie zurückkehrt, befindet sich der Zeiger der zugrunde liegenden Dateiposition am Ende der Datei. Dann versuchst du, die Datei etwas mehr in der for-Schleife zu lesen, aber da sie schon am Ende ist, tut sie nichts. Verwenden Sie nur eine der beiden Methoden. – Keith