当路径来自 os.path.join 时打开图像文件
Open an image file when the path is made from 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()
第二个:
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))
我在运行第二个的时候出现错误,因为os.path.join
实际上加入了该行的“\n”,所以cl_img
打不开。但是,当我单独打印 "line" 时,它不显示 '\n'
这是错误:
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:[=13=]adtoolsv2\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'
我希望我的第二个脚本在打开文件时不考虑“\n”(第一个脚本中必需)
非常感谢,纪尧姆。
您可以简单地使用:
lines = file.read().splitlines()
for line in lines :
print line #Wouhou, no \n
读取行时去掉“\n”怎么样?
line=str(line).strip()
或者加入路径的时候?
cl_img_path=os.path.normpath((os.path.join(Dirname, line.strip())))
或者打开图片的时候?
cl_img=Image.open(str(cl_img_path).strip())
我使用两种不同的脚本。在第一个中,有这样的东西:
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()
第二个:
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))
我在运行第二个的时候出现错误,因为os.path.join
实际上加入了该行的“\n”,所以cl_img
打不开。但是,当我单独打印 "line" 时,它不显示 '\n'
这是错误:
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:[=13=]adtoolsv2\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'
我希望我的第二个脚本在打开文件时不考虑“\n”(第一个脚本中必需)
非常感谢,纪尧姆。
您可以简单地使用:
lines = file.read().splitlines()
for line in lines :
print line #Wouhou, no \n
读取行时去掉“\n”怎么样?
line=str(line).strip()
或者加入路径的时候?
cl_img_path=os.path.normpath((os.path.join(Dirname, line.strip())))
或者打开图片的时候?
cl_img=Image.open(str(cl_img_path).strip())