2014-10-08 1 views
0

의 목록에서 이름을 가진 파일의 이름을 바꿉니다 이미지를 바꾸고, B에 대응하는 문자열을 추가하도록 얻을 :내가 파이썬에있어 파일의 무리가 파이썬

FILE1-ren.jpg
파일 2-sans.jpg
FILE3-ren.j pg

for imgs in images : 
    os.rename(imgs,''.join(imgs + b for f in b)) 

TypeError: cannot concatenate 'str' and 'numpy.ndarray' objects 

괜찮습니까? 감사

+4

방법 REN/렌/렌에/산세/렌 차례 르네는 무엇입니까? –

+1

'join'에서'imgs + b'보다는'imgs + f'를 원했습니까? – mgilson

+0

또한'os.listdir'는 반환하는 이름에 대한 특정 순서를 지정하지 않습니다. . . – mgilson

답변

4

아이디어는 더 같은 것은 :

for img, extra in zip(images, b) : 
    os.rename(img, ''.join([img, '-', extra, '.jpg']) 

그러나 이미 IMG에서 확장을 제거한 것을 의미한다.

다음, 그렇지 않은 경우 :

for img, extra in zip(images, b) : 
    filename, extension = os.path.splitext(img) 
    os.rename(img, ''.join([filename, '-', extra, extension]) 
+1

그것은 나를 위해 잘 작동합니다. 고맙습니다 ! – Chargaff

+0

환영합니다. 기쁜 데 도움이되었습니다. –

+0

그러나이 경우 len (b) == len (images)이기 때문에이 경우에는 작동합니다. 그렇지 않으면 물론 아닙니다. –

관련 문제