os.path.splitext() and case sensitivity


R

rbt

Hi,

Is there a way to make os.path.splitext() case agnostic?

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1] in file_type:
pass

remove_file_type(sysroot, ['.tmp', '.TMP'])

As you can see, the way I do it now, I place file extensions in a list.
However, I'd like to able just to say '.tmp' and for that to work on any
type of file that has tmp (no matter the case) in the extension.

Many thanks!!!
 
Ad

Advertisements

J

Juho Schultz

rbt said:
Hi,

Is there a way to make os.path.splitext() case agnostic?

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1] in file_type:
pass

remove_file_type(sysroot, ['.tmp', '.TMP'])

As you can see, the way I do it now, I place file extensions in a list.
However, I'd like to able just to say '.tmp' and for that to work on any
type of file that has tmp (no matter the case) in the extension.

Many thanks!!!


One solution would be to convert the extensions to lowercase
(or uppercase, if you prefer that)

if fileExtension.lower() == ".tmp":
 
R

Richie Hindle

[rbt]
Is there a way to make os.path.splitext() case agnostic?

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1] in file_type:
pass

remove_file_type(sysroot, ['.tmp', '.TMP'])

def remove_file_type(target_dir, file_type):
[...]
if os.path.splitext(f)[1].lower() == file_type.lower():
pass

remove_file_type(sysroot, '.tmp')
 
R

rbt

Richie said:
[rbt]
Is there a way to make os.path.splitext() case agnostic?

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1] in file_type:
pass

remove_file_type(sysroot, ['.tmp', '.TMP'])

def remove_file_type(target_dir, file_type):
[...]
if os.path.splitext(f)[1].lower() == file_type.lower():
pass

remove_file_type(sysroot, '.tmp')

Thanks guys!!!
 
Ad

Advertisements

R

rbt

Juho said:
rbt said:
Hi,

Is there a way to make os.path.splitext() case agnostic?

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1] in file_type:
pass

remove_file_type(sysroot, ['.tmp', '.TMP'])

As you can see, the way I do it now, I place file extensions in a
list. However, I'd like to able just to say '.tmp' and for that to
work on any type of file that has tmp (no matter the case) in the
extension.

Many thanks!!!


One solution would be to convert the extensions to lowercase
(or uppercase, if you prefer that)

if fileExtension.lower() == ".tmp":

Many thanks... I did it this way as I sometimes delete files with
different extensions:

def remove_file_type(target_dir, file_type):
for root, dirs, files in os.walk(target_dir):
for f in files:
if os.path.splitext(os.path.join(root, f))[1].lower() in
file_type:


remove_file_type(user_docs, ['.tmp', '.mp3'])
 

Top