Aaron Zettler-Mann
Aaron Zettler-Mann

Reputation: 1

How to loop through folder, containing subfolders to change jpgs to tiffs

I have folders (river reach, eg W&S_River) which contain sub folders (one per gravel bar eg GravelBar_18) which contain images (50 - 300 per gravel bar). I'm trying to convert the images from jpg to tiff. I've got some code that does the conversion, but it takes some time and doesn't loop through the directory folder (river reach). I'm hoping to define the reach folder and have some code that opens each sub folder and converts each sub folder.

I've been trying to use os.walk based on what I've read here. I'm not getting any error messages, but it's not actually doing anything. Below is what I'm currently using to update the image in each sub folder.

import os
import os.path
from PIL import Image
import glob

os.chdir('E:/W&S_River/GravelBar_18')

for infile in glob.glob("*.jpg"):
    file, ext = os.path.splitext(infile)
    im = Image.open(infile)
    im.save(file+".tiff", 'TIFF')

print("done")

Upvotes: 0

Views: 532

Answers (1)

Wang Liang
Wang Liang

Reputation: 4434

for infile in glob.glob("/*/*.jpg"): # "/*" is important
     ...
#https://stackoverflow.com/a/36426997/11343720

#https://docs.python.org/3/library/glob.html#glob.glob
# ../../Tools/*/*.gif

import os
import os.path
from PIL import Image
import glob

def jpgToTIFF(folder):
    os.chdir(folder)

    for infile in glob.glob("*.jpg"):
        file, ext = os.path.splitext(infile)
        im = Image.open(infile)
        im.save(file+".tiff", 'TIFF')

subfolders = [f.path for f in os.scandir('f:/work_rpi') if f.is_dir() ]
for foler in subfolders:
    print(foler)
    jpgToTIFF(folder)

https://stackoverflow.com/a/40347279/11343720

Upvotes: 1

Related Questions