Doctor of Science in Information Technology (DScIT) Repository

9-3. Creating a New File in Python

In Python, you can create a new file using the open() function with specific modes. Here’s how you can do it with different modes:

  • Create Mode ("x"): Creates a new file and returns an error if the file already exists.
  • Append Mode ("a"): Opens a file for appending and creates the file if it does not exist.
  • Write Mode ("w"): Opens a file for writing and creates the file if it does not exist.

Example: Creating a File Using Write Mode

To create a file using the write mode, which will create the file if it does not exist:

def main():
	# Open a file for writing (creates if it does not exist)
	with open("newfile_write.txt", "w") as f:
		f.write("This file is created and written to in write mode. \n")

	# Verify the file content
	with open("newfile_write.txt", "r") as f:
		print(f.read())

if __name__==__main__":
	main()

Explanation:

  • Open the File in Write Mode: Use open("newfile_write.txt", "w") to open the file for writing. This will create the file if it does not exist.
  • Write to the File: Use write() to add content to the file.
  • Close the File: Always close the file after performing operations on it.
  • Read the File: Reopen the file in read mode to verify its content.

This code example demonstrates creating a file of usernames from a file that contains names.

def main():
	try:
		print("Creating a file of usernames from a file of names.")

		# Get the file names
		infileName = input("What file are the names in? ")
		outfileName = input("What file should the usernames go in? ")

		# Open the files
		infile = open(infileName, 'r')
		outfile = open(outfileName, 'w')

		# Process each line of the input file
		for line in infile:
			# Get the first and last names from line
			first, last = line.split()
			# Create a username using slicing
			uname = (first[0] + last[:7]).lower()

			# Write it to the output file
			print(uname, file=outfile)

		# Close both files
		infile.close()
		outfile.close()

		print("Usernames have been written to", outfileName)

	except IOError as e:
		print(f"An error occurred: {e}")

if __name__=="__main__":
	main()

 

 

Last updated: August 09, 2026

AI Code Explainer

Paste any Python code below and get a plain-English explanation.