Download-CGI Script

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

Hi

ich habe ein Download-Script geschrieben, nur hab ich ein problem bei der ausgabe der datei

Code: Alles auswählen

print 'Content-Type: application/x-gzip'
print 'Content-Length: '+str(stats.st_size)
print 'Content-Disposition: attachment; filename="'+filename+'"\n';

f = open(filepath,'rb')
print f.read()
f.close()
bei print wird doch nocht ein '\n' hinzugefügt, nur das möchte ich nicht
kann ich sowas unterbinden?

danke
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Hi rayo,

einfach einen Beistrich anhängen

Code: Alles auswählen

    print f.read(),
oder verwende sys.stdout

Code: Alles auswählen

    sys.stdout.write(f.read())
Gruß

Dookie
rayo
User
Beiträge: 773
Registriert: Mittwoch 5. November 2003, 18:06
Wohnort: Schweiz
Kontaktdaten:

mmm, python ersetzt noch was bei den zeichen \r\n

also beim einlesen siehts so aus:

Code: Alles auswählen

abcdefgh\r\nijklmnop\r\nasdf\r\nsdf\r\nasdf\r\n
beim ausgeben so:

Code: Alles auswählen

abcdefgh\r\r\nijklmnop\r\r\nasdf\r\r\nsdf\r\r\nasdf\r\r\n
also immer ein \r zuviel
wie krieg ich python dazu, nichts mit dem eingelesenen und ausgegebenen anzustellen?


so sieht zurzeit mein code aus:

Code: Alles auswählen

sys.stdout.write('Content-Type: application/x-gzip\n')
sys.stdout.write('Content-Length: '+str(stats.st_size)+'\n')
sys.stdout.write('Content-Disposition: attachment; filename="'+filename+'"\n')
sys.stdout.write('\n')

f = open(filepath,'rb')
sys.stdout.write(f.read())
f.close()
gruss
Antworten