How to find the largest file in a directory in Python

Written by Administrator on Sunday May 17, 2020

Sometime while creating a program or writing a script in Python we need to find the largest file in a current directory. This is very simple task and can done by running a following script:

import os

files = os.listdir(".")

largest_file_size = 0
largest_file = ""

for file in files:
    if os.path.isfile(file):
        size = os.path.getsize(file)
            if size <  largest_file_size:
                largest_file_size = size
                largest_file = file

print("largest file in current directory has filename "+largest_file+ " and size: "+str(largest_file_size)+" bytes.")

Output in my case:

dima@linux-zsrx:~/python> ls -l
total 24
-rw-r--r-- 1 dima users 2036 May 17 16:29 dics.py
-rw-r--r-- 1 dima users  405 May 18 03:40 largest_file_in_directory.py
-rw-r--r-- 1 dima users  109 May 17 17:06 levyi
-rw-r--r-- 1 dima users  680 May 17 19:00 levyi.py
-rw-r--r-- 1 dima users  125 May 17 19:33 test01.py
-rw-r--r-- 1 dima users  241 May 18 00:33 translitgeo.py
dima@linux-zsrx:~/python> python smallest_file_in_directory.py 
the smallest file in current directory has filename levyi and size: 109 bytes.

What does that code?

First, we are making a list of files in a current directory using os module. In order to understand, what does further code, we have to check, what kind of object we get by running os.listdir() command.

Normally we have to check, if chosen item is directory or file, but we know, that directory link cannot be the biggest item, that's why we dont't have to check it.

Let's check is separately:

>>> import os
>>> files = os.listdir(".")
>>> type(files)
<type 'list'>

Ok, now we see, that listdir() method is returning a list. It's good information, because now we know, that we can work with files variable as with a list. In further code we a looping a list (for file in files).