2016-12-22 3 views
-1

Ich möchte die neu erstellte CSV-Datei für das Versenden von E-Mails innerhalb eines Programms anhängen. Der Dateiname wird innerhalb des Programms generiert und als fname (ein String) gespeichert. Wie kann ich den Speicherort der Datei angeben?Dateispeicherort mit Variablenattribut

Funktioniert das?

def emailing(fname, attachment) 
    ... 
    ... 
    attachment = open(/home/pi/Adafruit_Python_MAX31855/%s, fname) 
    ... 
+2

ersten Versuch, später fragen. – furas

+0

verketten Strings '" long/Pfad/"+ fname' oder' "long/Pfad /% s"% fname' oder '" long/Pfad/{} ". Format (fname)' oder verwenden Sie spezielle Funktionen zum Verketten von Pfad ' os.path.join ("long/path /", fname) ' – furas

Antwort

0

Sie sollten, '{}'.format() direkt nach dem Standort verwenden.

attachment = open('/home/pi/Adafruit_Python_MAX31855/{}'.format(fname)) 

Weitere Informationen zu .format finden Sie hier. https://pyformat.info/

Ich schlage vor, Sie lernen zuerst die Grundlagen von Python, bevor Sie es versuchen.

+0

Für Datei- und Ordnerpfade ist es besser, die' os.path'-Dienstprogrammfunktionen zu verwenden, da sie das Schreiben von Code erleichtern, der unter Betriebssystemen portierbar ist. – martineau

+1

Danke @martineau wird das merken :-) – penta

1

Verwenden Sie spezielle Funktionspfad

open(os.path.join("long/path/", fname)) 

Python doc verketten: os.path.join

Schließlich Strings verketten

open("long/path/" + fname) 
open("long/path/%s" % fname) 
open("long/path/{}".format(fname)) 
Verwandte Themen