我正在使用 glob 来获取大量图像的图片对的名称。唯一的问题是我得到了绝对路径,我不想要那个,我只需要图片的名称。我能怎么做?
import glob
A=sorted(glob.glob('/media/test/A*.png'))
B=sorted(glob.glob('/media/test/B*.png'))
NumbSeq=len(A)
for i in range(0,NumbSeq):
print "\"%s\",\"%s\","%(A[i],B[i])
Run Code Online (Sandbox Code Playgroud)
我明白了 :
"/media/test/A170900_85495.460376.png","/media/test/B170900_85495.460376.png"
Run Code Online (Sandbox Code Playgroud)
我需要它 :
"A170900_85495.460376.png","B170900_85495.460376.png"
Run Code Online (Sandbox Code Playgroud)
Mic*_*rin 10
而不是glob(pathname),使用glob1(dirname, pattern)方法来获取文件名。
>>> glob.glob1("some_dir", "*.png")
['foo.png', 'bar.png', ...]
>>> glob.glob("some_dir/*.png")
['/home/michael/A_dir/B_dir/some_dir/foo.png',
'/home/michael/A_dir/B_dir/some_dir/bar.png',
...]
Run Code Online (Sandbox Code Playgroud)
小智 2
尝试这个
os.path.basename(A[i])
Run Code Online (Sandbox Code Playgroud)
这将单独返回文件名。
import glob
import os
A=sorted(glob.glob('/media/test/A*.png'))
B=sorted(glob.glob('/media/test/B*.png'))
NumbSeq=len(A)
for i in range(0,NumbSeq):
print '"%s","%s"'%(os.path.basename(A[i]),os.path.basename(B[i]))
Run Code Online (Sandbox Code Playgroud)
这会给你
"A170900_85495.460376.png","B170900_85495.460376.png"
Run Code Online (Sandbox Code Playgroud)