I encountered a problem with writing a file without a newline while working on a project for my clients. The goal was to ensure that each entry was appended to the file without unnecessary newlines, which could disrupt data processing later on. In this tutorial, I will explain how to write to a file without newline in Python with examples.
File in Python
Let us learn what is a file in Python to understand more about writing a file without newline.
Read How to Delete a File if it Exists in Python?
Basic File Writing in Python
Before getting into writing without newlines, let’s quickly review how to write to a file in Python. The standard way to write to a file involves opening the file in write ('w') or append ('a') mode and using the write() method.
# Example: Writing customer data to a file
customer_data = "John Doe, New York, 10001"
with open('customers.txt', 'w') as file:
file.write(customer_data)In the above example, the write() method writes the string to the file. By default, it does not add a newline unless explicitly specified.
Check out How to Create a File in Python if It Doesn’t Exist?
The Problem with Newlines
Consider a scenario where you are appending multiple entries to a file. Each entry should be on the same line, separated by a delimiter like a comma. Using the write() method repeatedly can inadvertently introduce newlines if not handled correctly.
# Incorrect way: Appending entries with unintended newlines
entries = ["Jane Smith, Los Angeles, 90001", "Bob Johnson, Chicago, 60601"]
with open('customers.txt', 'a') as file:
for entry in entries:
file.write(entry + '\n')You can see the output in the below screenshot.

In the above code, each entry is written on a new line due to the '\n' character.
Read Python Get File Extension
Write to a File Without Newline in Python
To avoid adding newlines, you can simply omit the newline character and ensure that the data is formatted correctly before writing. Here are some effective methods to achieve this.
Method 1: Use the write() Method
One simple way is to concatenate the entries into a single string and then write them all at once.
# Correct way: Writing entries without newlines
entries = ["Jane Smith, Los Angeles, 90001", "Bob Johnson, Chicago, 60601"]
with open('customers.txt', 'a') as file:
file.write(', '.join(entries))In this example, the join() method concatenates the entries with a comma and space, ensuring they are written on the same line.
You can see the output in the below screenshot.

Check out Python Get Filename From Path
Method 2: Use writelines()
The writelines() method can also be used to write multiple lines to a file without adding newlines. However, you need to ensure that the lines themselves do not end with newline characters.
# Using writelines() method
entries = ["Jane Smith, Los Angeles, 90001", "Bob Johnson, Chicago, 60601"]
with open('customers.txt', 'a') as file:
file.writelines(entries)In this method, each entry in the list is written to the file without any additional newline characters.
You can see the output in the below screenshot.

Read Python File methods
Advanced Techniques
For more complex scenarios, such as writing data conditionally or formatting large datasets, you might need advanced techniques.
Method 3: Use sys.stdout.write()
The sys.stdout.write() method provides more control over the output, as it does not append a newline by default.
import sys
entries = ["Jane Smith, Los Angeles, 90001", "Bob Johnson, Chicago, 60601"]
with open('customers.txt', 'a') as file:
for entry in entries:
sys.stdout.write(entry)
You can see the output in the below screenshot.

This method is particularly useful when you need to write data to both the console and a file simultaneously.
Read Python file Does Not Exist Exception
Method 4: Use StringIO for In-Memory Operations
For operations that require manipulating data in memory before writing to a file, the StringIO module from the io library can be very efficient.
from io import StringIO
buffer = StringIO()
entries = ["Jane Smith, Los Angeles, 90001", "Bob Johnson, Chicago, 60601"]
buffer.write(', '.join(entries))
with open('customers.txt', 'a') as file:
file.write(buffer.getvalue())Using StringIO, you can perform all string operations in memory and then write the final result to the file.
Check out How to Import a Class from a File in Python
Example: Write Customer Data
Let’s put everything together with a practical example. Suppose you are working for “USA Retailers Inc.” in Los Angeles, and you need to write customer purchase data to a file without adding newlines.
# Example: Writing customer purchase data without newlines
purchase_data = [
"CustomerID: 123, Name: Alice Brown, City: New York, Zip: 10001, Purchase: $250",
"CustomerID: 124, Name: Charlie Davis, City: San Francisco, Zip: 94101, Purchase: $300"
]
with open('customer_purchases.txt', 'w') as file:
file.write('; '.join(purchase_data))In this example, each entry is separated by a semicolon and space, ensuring that all data is written on a single line.
Read How to Copy File and Rename in Python
Conclusion
In this tutorial, I explained how to write to a file without newline in Python. I discussed methods such as using write(), writelines(), and sys.stdout.write(), which can effectively control the output format.
You may like to read:
- How to Check If a File Exists and Create It If Not in Python?
- How to Get the File Size in MB using Python?
- How to Unzip a File in Python?

I am Bijay Kumar, a Microsoft MVP in SharePoint. Apart from SharePoint, I started working on Python, Machine learning, and artificial intelligence for the last 5 years. During this time I got expertise in various Python libraries also like Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… for various clients in the United States, Canada, the United Kingdom, Australia, New Zealand, etc. Check out my profile.