Read all file in folder python

Os

You can list all files in the current directory using os.listdir:

import os
for filename in os.listdir(os.getcwd()):
   with open(os.path.join(os.getcwd(), filename), 'r') as f: # open in readonly mode
      # do your stuff

Glob

Or you can list only some files, depending on the file pattern using the glob module:

import os, glob
for filename in glob.glob('*.txt'):
   with open(os.path.join(os.getcwd(), filename), 'r') as f: # open in readonly mode
      # do your stuff

It doesn't have to be the current directory you can list them in any path you want:

import os, glob
path = '/some/path/to/file'
for filename in glob.glob(os.path.join(path, '*.txt')):
   with open(os.path.join(os.getcwd(), filename), 'r') as f: # open in readonly mode
      # do your stuff

Pipe

Or you can even use the pipe as you specified using fileinput

import fileinput
for line in fileinput.input():
    # do your stuff

And you can then use it with piping:

ls -1 | python parse.py

View Discussion

Improve Article

Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    Prerequisite:

    • File Handling
    • os

    Python is a strong language which is extremely capable even when it comes to file handling. In this article, we will learn how to read multiple text files from a folder using python.

    Approach:

    • Import modules
    • Add path of the folder
    • Change directory
    • Get the list of a file from a folder
    • Iterate through the file list and check whether the extension of the file is in .txt format or not.
    • If text-file exist, read the file usingFile Handling

    Functions used:

    • os.chdir() method in Python used to change the current working directory to specified path. It takes only a single argument as new directory path.

    Syntax: os.chdir(path)

    Parameters:

    • path: A complete path of directory to be changed to new directory path.

    Returns: Doesn’t return any value

    • os.listdir() method in python is used to get the list of all files and directories in the specified directory. If we don’t specify any directory, then list of files and directories in the current working directory will be returned.

    Syntax: os.listdir(path)

    Parameters:

    • path (optional) : path of the directory

    Return Type: This method returns the list of all files and directories in the specified path. The return type of this method is list.

    Below is the Implementation:

    Program:

    Python3

    import os

    path = "Enter Folder Path"

    os.chdir(path)

    def read_text_file(file_path):

        with open(file_path, 'r') as f:

            print(f.read())

    for file in os.listdir():

        if file.endswith(".txt"):

            file_path = f"{path}\{file}"

            read_text_file(file_path)

    Output:

    https://media.geeksforgeeks.org/wp-content/uploads/20210125102530/FreeOnlineScreenRecorderProject4.mp4

    View Discussion

    Improve Article

    Save Article

  • Read
  • Discuss
  • View Discussion

    Improve Article

    Save Article

    In this article, we will cover how do we list all files in a directory in python.

    What is a directory?

    A Directory also sometimes known as a folder is a unit organizational structure in a computer’s file system for storing and locating files or more folders. Python now supports a number of APIs to list the directory contents. For instance, we can use the Path.iterdir, os.scandir, os.walk, Path.rglob, or os.listdir functions. 

    Directory in use: gfg

    Read all file in folder python

    Method 1: Os Module

    •  os.listdir() method gets the list of all files and directories in a specified directory. By default, it is the current directory. Beyond the first level of folders, os.listdir() does not return any files or folders.

    Syntax: os.listdir(path)

    Parameters:

    • Path of the directory

    Return Type: returns a list of all files and directories in the specified path

    Example 1: Get all the list files in a Directory

    Python

    Output:

    Read all file in folder python

    Example 2: To get only .txt files.

    Python3

    import os

    for x in os.listdir():

        if x.endswith(".txt"):

            print(x)

     Output:

    Read all file in folder python

    •  OS.walk() generates file names in a directory tree. This function returns a list of files in a tree structure. The method loops through all of the directories in a tree.

    Syntax: os.walk(top, topdown, onerror, followlinks)

    • top: It is the top directory from which you want to retrieve the names of the component files and folders.
    • topdown: Specifies that directories should be scanned from the top down when set to True. If this parameter is False, directories will be examined from the top down.
    • onerror: It provides an error handler if an error is encountered 
    • followlinks: if set to True, visits folders referenced by system links 

    Return: returns the name of every file and folder within a directory and any of its subdirectories.

    Python3

    Output:

    Read all file in folder python

    •  os.scandir() is supported for Python 3.5 and greater. 

    Syntax: os.scandir(path = ‘.’)

    Return Type: returns an iterator of os.DirEntry object.

    Python3

    import os

    obj = os.scandir()

    print("Files and Directories in '% s':" % path)

    for entry in obj:

        if entry.is_dir() or entry.is_file():

            print(entry.name)

    Output:

    Read all file in folder python

    Method 2: Using glob module 

    The glob module is used to retrieve files/path names matching a specified pattern. 

    • glob() method: With glob, we can use wild cards (“*, ?, [ranges])to make path retrieval more simple and convenient.

    Example:

    Python3

    import glob

    path = "C:\\Users\\Vanshi\\Desktop\\gfg"

    print('\nNamed with wildcard *:')

    for files in glob.glob(path + '*'):

        print(files)

    print('\nNamed with wildcard ?:')

    for files in glob.glob(path + '?.txt'):

        print(files)

    print('\nNamed with wildcard ranges:')

    for files in glob.glob(path + '/*[0-9].*'):

        print(files)

    Output:

    Read all file in folder python

    •  iglob() method can be used to print filenames recursively if the recursive parameter is set to True.

    Syntax: glob.iglob(pathname, *, recursive=False)

    Example:

    Python3

    import glob

    path = "C:\\Users\\Vanshi\\Desktop\\gfg**\\*.txt"

    print("\nUsing glob.iglob()")

    for file in glob.iglob(path, recursive=True):

        print(file)

    Output:

    Read all file in folder python


    How do I read all files in a directory in Python?

    Approach:.
    Import modules..
    Add path of the folder..
    Change directory..
    Get the list of a file from a folder..
    Iterate through the file list and check whether the extension of the file is in . txt format or not..
    If text-file exist, read the file using File Handling..

    How do I read multiple files from a directory in Python?

    Import the OS module in your notebook. Define a path where the text files are located in your system. Create a list of files and iterate over to find if they all are having the correct extension or not. Read the files using the defined function in the module.

    How do I print all files in a directory in Python?

    For this article, the following methods from the os module will be required:.
    os. startfile(): This method prints the contents of a given file. Syntax: os.startfile(path, operation='open') ... .
    os. listdir(): This method lists all the files and directories within a given directory. ... .
    os. path..

    How do I read multiple text files from multiple folders in Python?

    You can do something similar using glob like you have, but with the directory names. Show activity on this post. Below function will return list of files in all the directories and sub-directories without using glob. Read from the list of files and open to read.