2017-01-10 4 views
1

Ich verwende zwei verschiedene Skripte. In der ersten gibt es so etwas wie dieses:Öffnen Sie eine Image-Datei, wenn der Pfad von os.path.join

f = open(filename, 'r') 

file, file_ext = os.path.splitext(filename) 

thumb=open(file +"_thumb.txt","w") 

    for line in f: 
    array = line.split(',') 

    a = str(array[0]) 

    t=a[11:14]+ "\\" + a[15:19] + "\\" + (a[11:])+".jpg" +"\n" 

    thumb.write(t) 

thumb.close() 

Im zweiten:

Dirname = str(self.lneDirIn1.text()) 

f=open(file +"_thumb.txt","r") 

for line in f: 
    line=str(line) 

    print(line) 

    cl_img_path=os.path.normpath((os.path.join(Dirname,line))) 

    print(cl_img_path) 

    cl_img=Image.open(str(cl_img_path)) 

Als ich den zweiten Lauf, ein Fehler ist, weil os.path.join tatsächlich die „\ n“ schließt sich der Linie, so cl_img kann nicht geöffnet werden. Wenn ich jedoch die „Linie“ allein zu drucken, ist es nicht die ‚\ n‘ angezeigt

hier den Fehler:

Traceback (most recent call last): 
    File "./midas/mds_central_line_thumbs.py", line 118, in pbtOKClicked 
    self.process() 
    File "./midas/mds_central_line_thumbs.py", line 105, in process 
    cl_img=Image.open(str(cl_img_path)) 
    File "C:\0adtoolsv2\libs\Python27\lib\site-packages\PIL\Image.py", line 1952, in open 
    fp = __builtin__.open(fp, "rb") 
IOError: [Errno 22] invalid mode ('rb') or filename: 'k:\\SBU_3\\USA\\PIO2015\\04-TEST-SAMPLES\\USCASFX1608\\D16MMDD\\B3\\Images\\051\\0151\\051_0151_00021466.jpg\n' 

Ich möchte, dass mein zweites Skript nehmen nicht die "\ n" (notwendig im ersten Skript) berücksichtigt beim Öffnen der Datei

Vielen Dank, Guillaume.

Antwort

1

Was ist mit dem "\ n" Strippen beim Lesen der Linie?

line=str(line).strip() 

Oder wenn Sie den Pfad verbinden?

Oder beim Öffnen des Bildes?

cl_img=Image.open(str(cl_img_path).strip()) 
+0

Vielen Dank! Ich wusste nichts über den .strip()! Es hat gut geklappt, als ich mich dem Pfad angeschlossen habe ... Einen schönen Tag noch! – gruelle

0

Sie könnten einfach zu verwenden:

lines = file.read().splitlines() 
for line in lines : 
    print line #Wouhou, no \n 
+0

, wenn ich das tun, was Sie vorschlagen, zu entfernen, die \ n das erste Skript ist, gibt es keine Rückkehr in die Linie mehr ... – gruelle

Verwandte Themen