Reading Time: 1 minutes
Remove comments from a file with Exception Handling in Python: Python script to remove comments from a file.
Remove comments from a file with Exception Handling in Python
# Removing comments from a file with Exception Handling
# Write a program to remove all the comments from a file. Create a new file and leave the original untampered.
# Such an activity is usually performed while creating minified version of a script, to reduce file size.
import sys
# ask for file names
inputFileName = input('Please enter the name of the file you wish to remove comments from: ')
outputFileName = input('Please enter the name of the new file: ')
# open both files
try:
inputFileHandler = open(inputFileName, 'r')
outputFileHandler = open(outputFileName, 'w')
except FileNotFoundError:
print("Please specify a valid file. Ensure that the file is located in the same directory as the script.")
sys.exit()
# read the file line by line; write to new file as it is if no comment in line; modify and then write to new file if comment present
# find() returns the position of a character/substring in a string; returns -1 if not found
# line[0: positionOfHash] slices the line till the character just behind the # symbol. In the process, the new line character after the comment is also deleted, so we manually add it here
for line in inputFileHandler.readlines():
positionOfHash = line.find('#')
if positionOfHash != -1:
line = line[0 : positionOfHash]
line = line + "\n"
outputFileHandler.write(line)
inputFileHandler.close()
outputFileHandler.close()
# printing a success message
print(outputFileName,"has been created without comments.")
######## END OF PROGRAM ########
# If you are running on an online environment such as repl.it, and don't have a sample file at hand, uncomment the following to create a sample file.
##fileHandler2 = open('dev_script.py', 'w+')
##fileHandler2.write('myInt = 4 # an integer variable\n')
##fileHandler2.write('myString = \"Ethan\" # a string variable\n\n')
##fileHandler2.write('myList = [1, 2, 3, 4, 5, 6] # a list variable\n')
##fileHandler2.write('mySet = set(myList) # creating a set from a list\n')
##fileHandler2.write('myTuple = 2, 3 # creating a tuple without parentheses\n')
##fileHandler2.write('myDict = {1: \'one\', 2: \'two\'} # creating a dictionary variable')
##fileHandler2.seek(0)
##print(fileHandler2.read())
Try it here.







