How do i read a .out file in python?

Am I right in thinking Python cannot open and read from .out files?

My application currently spits out a bunch of .out files that would be read manually for logging purposes, I'm building a Python script to automate this.

When the script gets to the following

for file in os.listdir(DIR_NAME):
    if (file.endswith('.out')):
        open(file)

The script blows up with the following error "IOError : No such file or directory: 'Filename.out' "

I've a similar function with the above code and works fine, only it reads .err files. Printing out DIR_NAME before the above code also shows the correct directory is being pointed to.

asked Jan 25, 2013 at 16:26

os.listdir() returns only filenames, not full paths. Use os.path.join() to create a full path:

for file in os.listdir(DIR_NAME):
    if (file.endswith('.out')):
        open(os.path.join(DIR_NAME, file))

answered Jan 25, 2013 at 16:27

Martijn PietersMartijn Pieters

987k274 gold badges3881 silver badges3239 bronze badges

As an alternative that I find a bit easier and flexible to use:

import glob,os

for outfile in glob.glob( os.path.join(DIR_NAME, '*.out') ):
    open(outfile)

Glob will also accept things like '*/*.out' or '*something*.out'. I also read files of certain types and have found this to be very handy.

answered Jan 25, 2013 at 16:44

DanielDaniel

18.7k7 gold badges59 silver badges74 bronze badges


Open a File on the Server

Assume we have the following file, located in the same folder as Python:

demofile.txt

Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

To open the file, use the built-in open() function.

The open() function returns a file object, which has a read() method for reading the content of the file:

Example

f = open("demofile.txt", "r")
print(f.read())

Run Example »

If the file is located in a different location, you will have to specify the file path, like this:

Example

Open a file on a different location:

f = open("D:\\myfiles\welcome.txt", "r")
print(f.read())

Run Example »


Read Only Parts of the File

By default the read() method returns the whole text, but you can also specify how many characters you want to return:

Example

Return the 5 first characters of the file:

f = open("demofile.txt", "r")
print(f.read(5))

Run Example »



Read Lines

You can return one line by using the readline() method:

Example

Read one line of the file:

f = open("demofile.txt", "r")
print(f.readline())

Run Example »

By calling readline() two times, you can read the two first lines:

Example

Read two lines of the file:

f = open("demofile.txt", "r")
print(f.readline())
print(f.readline())

Run Example »

By looping through the lines of the file, you can read the whole file, line by line:

Example

Loop through the file line by line:

f = open("demofile.txt", "r")
for x in f:
  print(x)

Run Example »


Close Files

It is a good practice to always close the file when you are done with it.

Example

Close the file when you are finish with it:

f = open("demofile.txt", "r")
print(f.readline())
f.close()

Run Example »

Note: You should always close your files, in some cases, due to buffering, changes made to a file may not show until you close the file.



Python provides inbuilt functions for creating, writing, and reading files. There are two types of files that can be handled in python, normal text files and binary files (written in binary language, 0s, and 1s).

  • Text files: In this type of file, Each line of text is terminated with a special character called EOL (End of Line), which is the new line character (‘\n’) in python by default.
  • Binary files: In this type of file, there is no terminator for a line, and the data is stored after converting it into machine-understandable binary language.

In this article, we will be focusing on opening, closing, reading, and writing data in a text file.

File Access Modes

Access modes govern the type of operations possible in the opened file. It refers to how the file will be used once its opened. These modes also define the location of the File Handle in the file. File handle is like a cursor, which defines from where the data has to be read or written in the file. There are 6 access modes in python.

  1. Read Only (‘r’) : Open text file for reading. The handle is positioned at the beginning of the file. If the file does not exists, raises the I/O error. This is also the default mode in which a file is opened.
  2. Read and Write (‘r+’): Open the file for reading and writing. The handle is positioned at the beginning of the file. Raises I/O error if the file does not exist.
  3. Write Only (‘w’) : Open the file for writing. For the existing files, the data is truncated and over-written. The handle is positioned at the beginning of the file. Creates the file if the file does not exist.
  4. Write and Read (‘w+’) : Open the file for reading and writing. For an existing file, data is truncated and over-written. The handle is positioned at the beginning of the file.
  5. Append Only (‘a’): Open the file for writing. The file is created if it does not exist. The handle is positioned at the end of the file. The data being written will be inserted at the end, after the existing data.
  6. Append and Read (‘a+’) : Open the file for reading and writing. The file is created if it does not exist. The handle is positioned at the end of the file. The data being written will be inserted at the end, after the existing data.

How Files are Loaded into Primary Memory

There are two kinds of memory in a computer i.e. Primary and Secondary memory every file that you saved or anyone saved is on secondary memory cause any data in primary memory is deleted when the computer is powered off. So when you need to change any text file or just to work with them in python you need to load that file into primary memory. Python interacts with files loaded in primary memory or main memory through “file handlers” ( This is how your operating system gives access to python to interact with the file you opened by searching the file in its memory if found it returns a file handler and then you can work with the file ).

Opening a File

It is done using the open() function. No module is required to be imported for this function.

File_object = open(r"File_Name","Access_Mode")

The file should exist in the same directory as the python program file else, the full address of the file should be written in place of the filename. Note: The r is placed before the filename to prevent the characters in the filename string to be treated as special characters. For example, if there is \temp in the file address, then \t is treated as the tab character, and an error is raised of invalid address. The r makes the string raw, that is, it tells that the string is without any special characters. The r can be ignored if the file is in the same directory and the address is not being placed. 

Python

file1 = open("MyFile.txt","a")

file2 = open(r"D:\Text\MyFile2.txt","w+")

Here, file1 is created as an object for MyFile1 and file2 as object for MyFile2

Closing a file

How do i read a .out file in python?

close() function closes the file and frees the memory space acquired by that file. It is used at the time when the file is no longer needed or if it is to be opened in a different file mode. File_object.close() 

Python

file1 = open("MyFile.txt","a")

file1.close()

Writing to a file

There are two ways to write in a file.

  1. write() : Inserts the string str1 in a single line in the text file.
File_object.write(str1)
  1. writelines() : For a list of string elements, each string is inserted in the text file.Used to insert multiple strings at a single time.
File_object.writelines(L) for L = [str1, str2, str3] 

Reading from a file

There are three ways to read data from a text file.

  1. read() : Returns the read bytes in form of a string. Reads n bytes, if no n specified, reads the entire file.
File_object.read([n])
  1. readline() : Reads a line of the file and returns in form of a string.For specified n, reads at most n bytes. However, does not reads more than one line, even if n exceeds the length of the line.
File_object.readline([n])
  1. readlines() : Reads all the lines and return them as each line a string element in a list.
  File_object.readlines()

Note: ‘\n’ is treated as a special character of two bytes 

Python3

file1 = open("myfile.txt","w")

L = ["This is Delhi \n","This is Paris \n","This is London \n"

file1.write("Hello \n")

file1.writelines(L)

file1.close()

file1 = open("myfile.txt","r+"

print("Output of Read function is ")

print(file1.read())

print()

file1.seek(0

print( "Output of Readline function is ")

print(file1.readline()) 

print()

file1.seek(0)

print("Output of Read(9) function is "

print(file1.read(9))

print()

file1.seek(0)

print("Output of Readline(9) function is "

print(file1.readline(9))

file1.seek(0)

print("Output of Readlines function is "

print(file1.readlines()) 

print()

file1.close()

Output:

Output of Read function is 
Hello 
This is Delhi 
This is Paris 
This is London 


Output of Readline function is 
Hello 


Output of Read(9) function is 
Hello 
Th

Output of Readline(9) function is 
Hello 

Output of Readlines function is 
['Hello \n', 'This is Delhi \n', 'This is Paris \n', 'This is London \n']

Appending to a file

Python3

file1 = open("myfile.txt","w")

L = ["This is Delhi \n","This is Paris \n","This is London \n"

file1.writelines(L)

file1.close()

file1 = open("myfile.txt","a")

file1.write("Today \n")

file1.close()

file1 = open("myfile.txt","r")

print("Output of Readlines after appending"

print(file1.readlines())

print()

file1.close()

file1 = open("myfile.txt","w")

file1.write("Tomorrow \n")

file1.close()

file1 = open("myfile.txt","r")

print("Output of Readlines after writing"

print(file1.readlines())

print()

file1.close()

Output:

Output of Readlines after appending
['This is Delhi \n', 'This is Paris \n', 'This is London \n', 'Today \n']

Output of Readlines after writing
['Tomorrow \n']

Related Article: File Objects in Python 

This article is contributed by Harshit Agrawal. If you like GeeksforGeeks and would like to contribute, you can also write an article using write.geeksforgeeks.org or mail your article to . See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.


How do you read a file in a Python script?

Opening a File. Before accessing the contents of a file, we need to open the file. Python provides a built-in function that helps us open files in different modes. The open() function accepts two essential parameters: the file name and the mode; the default mode is 'r' , which opens the file for reading only.

How do you read a dataset in Python?

5 Ways to Open and Read Your Dataset Using Python. Different approaches for different purposes. ... .
Custom File for Custom Analysis. Working with raw or unprepared data is a common situation. ... .
File With Custom Encoding. ... .
CSV Files With Native Library. ... .
pandas. ... .
Read Numeric Dataset..

How do I read a binary file in Python?

You can open the file using open() method by passing b parameter to open it in binary mode and read the file bytes. open('filename', "rb") opens the binary file in read mode.

How do I open an input file in Python?

inputFileName = input("Enter name of input file: ") inputFile = open(inputFileName, "r") print("Opening file", inputFileName, " for reading.") 1. Open the file and associate the file with a file variable (file is “locked” for writing).