Python – Find Longest Line/String in File

5/5 - (2 votes)

Coding Challenge

💬 Challenge: How to Find the Longest Line or String From a File in Python?

Given the following text file:

Depending on what exactly you’re looking for, you want to find the longest string word (A) or the longest line (B) in the file.

without
python
we'd all have to
write 
java
code

Let’s dive into both variants next.

Method 1: Find Longest Line in Text File using Python

To find the longest line in a text file using Python, open the file using the open() function and read the file content in a list of lines using file.readlines() function. Then call the max(lines, key=len) function on the list of lines using the length function as a key to find the longest line.

Here’s the code:

with open('my_file.txt', mode='r') as f:
    lines = f.readlines()
    longest_line = max(lines, key=len)
    print('The longest line is:', longest_line)

The output is:

The longest line is: we'd all have to

You may want to check out the following tutorials to help you understand the basics of the features used in this snippet:

Or why not open all four tutorials and skim them in 1 minute per tutorial? Four minutes well spent! 🦄

Note you can one-linerize this using the following code snippet:

print(max(open('my_file.txt').readlines(), key=len))
# we'd all have to

Method 2: Find Longest String Word in a Text File using Python

A simple and straightforward way to find the longest string word in a text file is to open the file, loop over all lines using file.readlines(), split each line into a list of words using string.split(), loop over this list of words, and keep track of the longest word in a variable.

Here’s the Python snippet that finds the longest word in a text file:

with open('my_file.txt', 'r') as f:
    longest_word = ''
    for line in f.readlines():
        for word in line.split():
            if len(word)>len(longest_word):
                longest_word = word
    print('The longest word in the file is:', longest_word)

Here’s the correct output, i.e., the longest word in the text:

The longest word in the file is: without

Note, you can also one-linerize this using the following approach of combining list comprehension and the max() function:

longest = max([word for line in open('my_file.txt').readlines() for word in line.split()], key=len)

The result is the same:

print('The longest word in the file is:', longest)
# The longest word in the file is: without

In case you’re confused by the one-liner solution, no worries. First have a look at the list comprehension tutorial.

👉 Recommended Tutorial: A Simple Guide to Python’s List Comprehension

Second, you may also want to check out my book on the topic that will make you a one-liner wiz:

Python One-Liners Book: Master the Single Line First!

Python programmers will improve their computer science skills with these useful one-liners.

Python One-Liners

Python One-Liners will teach you how to read and write “one-liners”: concise statements of useful functionality packed into a single line of code. You’ll learn how to systematically unpack and understand any line of Python code, and write eloquent, powerfully compressed Python like an expert.

The book’s five chapters cover (1) tips and tricks, (2) regular expressions, (3) machine learning, (4) core data science topics, and (5) useful algorithms.

Detailed explanations of one-liners introduce key computer science concepts and boost your coding and analytical skills. You’ll learn about advanced Python features such as list comprehension, slicing, lambda functions, regular expressions, map and reduce functions, and slice assignments.

You’ll also learn how to:

  • Leverage data structures to solve real-world problems, like using Boolean indexing to find cities with above-average pollution
  • Use NumPy basics such as array, shape, axis, type, broadcasting, advanced indexing, slicing, sorting, searching, aggregating, and statistics
  • Calculate basic statistics of multidimensional data arrays and the K-Means algorithms for unsupervised learning
  • Create more advanced regular expressions using grouping and named groups, negative lookaheads, escaped characters, whitespaces, character sets (and negative characters sets), and greedy/nongreedy operators
  • Understand a wide range of computer science topics, including anagrams, palindromes, supersets, permutations, factorials, prime numbers, Fibonacci numbers, obfuscation, searching, and algorithmic sorting

By the end of the book, you’ll know how to write Python at its most refined, and create concise, beautiful pieces of “Python art” in merely a single line.

Get your Python One-Liners on Amazon!!