Python Script funktioniert unter Linux, funktioniert nicht unter Windows

AnotherWorld

Lt. Junior Grade
Registriert
Juni 2007
Beiträge
430
Hallo, vorweg erwähnt, ich bin totaler Laie und habe 0 Ahnung davon.
Ein Bekannter hat mir ein Script gegeben, was unter Linux (Fedora) auch wunderbar funktioniert,
nun wollte ich es unter Windows mit installiertem Python testen, aber da kommt nur die Meldung "invalid syntax".
Ich habe die Vermutung, dass noch irgendwo der genaue Speicherort angegeben werden muss.

Hier nun mal das Script, das was damit geladen werden könnte, ersetze ich durch Platzhalter

import urllib2

urlprefix = "Platzhalter 2014_09_08.mp4/"
url = urlprefix+"Platzhalter.m38u"

outFileName= "Platzhalter_08_09_2014.ts"

def getWebpage(url):
try:
f = urllib2.urlopen(url)
sitetext = f.read()
f.close()
except Exception,e:
print "Error: "+str(e)
sys.exit(1)

return sitetext

#print "getting File..."
chunklistFile = getWebpage(url)
#print "got file"

lines = chunklistFile.split("\n")

chunks = []
for l in lines:
if l.startswith("#") or len(l)==0:
continue

link = urlprefix+l
#link = l
chunks.append(link)
#print link

#print str(chunks)

outFile = open(outFileName,"wb")
cur = 1
count = len(chunks)
print "found %d Chunks" % count
print "loading chunks ..."
for c in chunks:
try:
f = urllib2.urlopen(c)
chunkContent = f.read()
f.close()

outFile.write(chunkContent)
except Exception,e:
print "Error: "+str(e)
sys.exit(1)

print "Chunk #%d of %d read" %(cur,count)
cur += 1

print "Finished"
 
Ich habe zwar nicht die leiseste Ahnung von Python und Programmierung aber wenn Du das Script hier als "Code" einfügst, wird es für andere einfacher sein, das Script zu lesen, verstehen und zu helfen.
 
Zuletzt bearbeitet:
Ich habe lediglich die Adresse der Internetseite entfernt auf die ich es anwenden will,
ansonsten funktioniert (ich habe es mal script genannt) die .py Datei so wie es dort steht unter Linux ohne Probleme.
Muss sie eben nur über Terminal aufrufen, "python scriptxy.py" und dann läuft es auch.

In Windows ist das direkt eine Datei die ich mit Doppelclick ausführen kann.
 
...bin mal ned so. :king:

Code:
import urllib2

urlprefix = "Platzhalter 2014_09_08.mp4/"
url = urlprefix+"Platzhalter.m38u"

outFileName= "Platzhalter_08_09_2014.ts"

def getWebpage(url):
try:
f = urllib2.urlopen(url)
sitetext = f.read()
f.close()
except Exception,e:
print "Error: "+str(e)
sys.exit(1)

return sitetext

#print "getting File..."
chunklistFile = getWebpage(url)
#print "got file"

lines = chunklistFile.split("\n")

chunks = []
for l in lines:
if l.startswith("#") or len(l)==0:
continue

link = urlprefix+l
#link = l
chunks.append(link)
#print link

#print str(chunks)

outFile = open(outFileName,"wb")
cur = 1
count = len(chunks)
print "found %d Chunks" % count
print "loading chunks ..."
for c in chunks:
try:
f = urllib2.urlopen(c)
chunkContent = f.read()
f.close()

outFile.write(chunkContent)
except Exception,e:
print "Error: "+str(e)
sys.exit(1)

print "Chunk #%d of %d read" %(cur,count)
cur += 1

print "Finished"
 
Da fehlt mindestens die Formatierung. Bei Python ist es wichtig, ob vor einer Zeile Leerzeichen stehen, da diese dann als Block (für beispielsweise eine Schleife oder Bedingung) aufgefasst werden.

Außerdem wäre eine genauere Fehlermeldung hilfreich. "Irgendwas mit invalid syntax" reicht da nicht. Optimalerweise postest Du die genaue Ausgabe des Interpreters.
 
Wenn er sagt, das gleiche Skript hat auf seinem Linux-System super funktioniert, dann hat er da vielleicht ein Python 2 installiert und auf dem Windows-System ein Python 3.
(Das Skript ist ja offensichtlich in Python 2 geschrieben ... sieht man ja schon an den print-Statements.)
 
So... ich habe mir mal Python 2.7.8 64 bit installiert.
Nun funktioniert es auch unter Windows. Danke! :)
 
Zurück
Oben