इस chapter में हम Python में File Handling सीखेंगे — इसमें शामिल हैं File Opening Modes, Reading & Writing Data, File Functions जैसे open(), close(), read(), readline(), write(), seek(), tell() और Command Line Arguments का प्रयोग।
File Handling का मतलब होता है data को computer memory (storage) में permanently store करना। जब कोई program execute होता है, तो data temporary रूप से RAM में store होता है। लेकिन अगर हमें data को save करना है ताकि program बंद होने के बाद भी वो रहे — तो हम files का उपयोग करते हैं।
Python file handling को बहुत आसान बनाता है — आप text files, binary files, और CSV files तक को आसानी से manage कर सकते हैं।
किसी file को access करने के लिए Python का built-in function open() उपयोग किया जाता है। इसका syntax है:
file_object = open("filename", "mode")
Example:
f = open("demo.txt", "w") # open file in write mode
f.write("Hello Python!")
f.close()
Output:
A new file demo.txt is created containing the text: “Hello Python!”
File mode यह बताता है कि file के साथ क्या operation होगा — read, write, append, binary, or text.
| Mode | Description | Example |
|---|---|---|
"r" |
Read Mode – file पढ़ने के लिए; अगर file नहीं है तो error। | |
"w" |
Write Mode – नई file बनाता है; existing content delete करता है। | |
"a" |
Append Mode – Existing file के end में data जोड़ता है। | |
"r+" |
Read + Write Mode – File को पढ़ और modify दोनों कर सकता है। | |
"w+" |
Write + Read Mode – File को overwrite करता है और पढ़ भी सकता है। | |
"a+" |
Append + Read Mode – End में data जोड़ता है और read भी कर सकता है। | |
"rb" |
Read Binary – Binary file (images/videos) को पढ़ने के लिए। | |
"wb" |
Write Binary – Binary mode में नया file बनाता है। | |
Text files human-readable होती हैं। आप write() और read() methods का उपयोग करके content लिख और पढ़ सकते हैं।
# Writing into a text file
with open("textfile.txt", "w") as f:
f.write("Python File Handling Example\n")
f.write("Second Line")
# Reading the file
with open("textfile.txt", "r") as f:
data = f.read()
print(data)
Output:
Python File Handling Example
Second Line
Binary files में data text के बजाय binary (0s और 1s) format में store होता है। ये files images, audio, video जैसी होती हैं।
# Copying binary file
with open("input.jpg", "rb") as src:
data = src.read()
with open("output_copy.jpg", "wb") as dest:
dest.write(data)
print("Image copied successfully!")
Output:
Image copied successfully!
Python में CSV files के लिए built-in csv module होता है। यह table-like data को rows और columns के format में manage करता है।
import csv
import csv
# Writing data into CSV
with open("students.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "Grade"])
writer.writerow(["Ravi", 20, "A"])
writer.writerow(["Priya", 21, "B"])
writer.writerow(["Amit", 19, "A"])
print("CSV file created successfully!")
Output:
CSV file students.csv created with following data:
Name, Age, Grade
Ravi, 20, A
Priya, 21, B
Amit, 19, A
import csv
# Reading data from CSV
with open("students.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
Output:
['Name', 'Age', 'Grade']
['Ravi', '20', 'A']
['Priya', '21', 'B']
['Amit', '19', 'A']
with keyword automatically file को close कर देता है — इसलिए यह सबसे सुरक्षित और clean तरीका है।
with open("example.txt", "r") as f:
content = f.read()
print(content)
✅ No need to use f.close(); it closes automatically.
csv module.write() writes one string, while writelines() writes multiple lines from list/tuple.r+ does not erase file content; w+ overwrites it completely.with open() block — it closes automatically.किसी भी file के साथ काम करने का पहला step उसे open() करना और आखिरी step उसे close() करना होता है। Python में यह process बहुत आसान है। Text files, Binary files और CSV files – तीनों को खोलने और बंद करने का तरीका लगभग समान होता है, सिर्फ mode और modules अलग होते हैं।
File को open करने के लिए Python का built-in open() function उपयोग किया जाता है। Syntax:
file_object = open("filename", "mode")
👉 यहाँ "mode" बताता है कि file पढ़नी है, लिखनी है या append करनी है।
| Mode | Description | Example |
|---|---|---|
"r" |
Read mode — file पढ़ने के लिए; अगर file नहीं है तो error देता है। | |
"w" |
Write mode — file को overwrite करता है या नया बनाता है। | |
"a" |
Append mode — existing file के अंत में data जोड़ता है। | |
"r+" |
Read + Write (file के बीच में भी लिख सकते हैं)। | |
"b" |
Binary mode — non-text files जैसे images/videos को handle करता है। | |
# Open file in write mode
f = open("example.txt", "w")
f.write("Hello, this is a sample text file.")
f.close()
print("Data written successfully!")
Output:
Data written successfully.
(File example.txt created successfully.)
जब आप किसी file पर operation पूरा कर लेते हैं, तो उसे close() method से बंद करना ज़रूरी होता है। इससे data properly save होता है और memory release होती है।
f = open("demo.txt", "w")
f.write("File handling in Python.")
f.close()
print("File closed successfully.")
Output:
File closed successfully.
with open() StatementFile को manually close() करने की जगह आप with statement का उपयोग कर सकते हैं। इससे file automatically close हो जाती है, even अगर कोई error भी आ जाए।
with open("data.txt", "w") as f:
f.write("Using with block is safer!")
print("File closed automatically after the block.")
Output:
File closed automatically after the block.
Binary files जैसे image, video या audio को handle करने के लिए mode में "b" जोड़ते हैं।
# Copy binary file
with open("photo.jpg", "rb") as source:
data = source.read()
with open("copy_photo.jpg", "wb") as target:
target.write(data)
print("Binary file copied successfully.")
Output:
Binary file copied successfully.
CSV files को handle करने के लिए csv module को import करना पड़ता है। यह files table-like data store करती हैं — जैसे Excel।
import csv
# Writing data into CSV file
with open("data.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "Marks"])
writer.writerow(["Ravi", 20, 85])
writer.writerow(["Anita", 22, 90])
print("CSV file created successfully!")
Output:
CSV file data.csv created successfully with records of students.
import csv
# Reading CSV file
with open("data.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
Output:
['Name', 'Age', 'Marks']
['Ravi', '20', '85']
['Anita', '22', '90']
Python में किसी file के open या closed होने की स्थिति check करने के लिए file_object.closed attribute का उपयोग किया जाता है।
f = open("sample.txt", "w")
print("Before closing:", f.closed)
f.close()
print("After closing:", f.closed)
Output:
Before closing: False
After closing: True
with open() automatically closes the file after use, while open() requires manual close().csv module (import csv).FileNotFoundError.Python में किसी file का content पढ़ने के लिए file को read mode ("r") या binary mode ("rb") में open किया जाता है। आप file के data को एक साथ या line-by-line पढ़ सकते हैं। CSV files के लिए Python csv module provide करता है।
Text files human-readable होती हैं। इन्हें open करके हम read(), readline(), या readlines() से data प्राप्त करते हैं।
# Create a file for reading
with open("demo.txt", "w") as f:
f.write("Python is powerful.\n")
f.write("File handling is easy.\n")
f.write("Keep practicing daily.")
# Read complete content
with open("demo.txt", "r") as f:
data = f.read()
print("File content:\n", data)
Output:
Python is powerful.
File handling is easy.
Keep practicing daily.
read() पूरी file को एक single string के रूप में return करता है।
Optionally आप characters की संख्या specify कर सकते हैं।
with open("demo.txt", "r") as f:
data = f.read(12)
print("First 12 characters:", data)
Output:
First 12 characters: Python is po
readline() एक बार में एक line पढ़ता है।
हर बार call करने पर अगली line मिलती है।
with open("demo.txt", "r") as f:
line1 = f.readline()
line2 = f.readline()
print("Line 1:", line1.strip())
print("Line 2:", line2.strip())
Output:
Line 1: Python is powerful.
Line 2: File handling is easy.
readlines() सभी lines को एक list में return करता है।
हर element एक line represent करता है।
with open("demo.txt", "r") as f:
lines = f.readlines()
print(lines)
Output:
['Python is powerful.\\n', 'File handling is easy.\\n', 'Keep practicing daily.']
बड़ी files (जैसे logs या CSV) को efficiently पढ़ने के लिए for loop का उपयोग करना सबसे अच्छा तरीका है।
with open("demo.txt", "r") as f:
for line in f:
print(line.strip())
Output:
Python is powerful.
File handling is easy.
Keep practicing daily.
CSV (Comma-Separated Values) file tabular data store करती है। Python में इसे पढ़ने के लिए csv.reader का उपयोग किया जाता है।
import csv
# Create sample CSV
with open("students.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "Marks"])
writer.writerow(["Ravi", 20, 85])
writer.writerow(["Anita", 22, 90])
# Read CSV File
with open("students.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
Output:
['Name', 'Age', 'Marks']
['Ravi', '20', '85']
['Anita', '22', '90']
💡 Tip: Each row is read as a list of strings.
DictReader class CSV data को dictionary format में पढ़ता है जहाँ column headers key के रूप में use होते हैं।
import csv
with open("students.csv", "r") as file:
reader = csv.DictReader(file)
for row in reader:
print(dict(row))
Output:
{'Name': 'Ravi', 'Age': '20', 'Marks': '85'}
{'Name': 'Anita', 'Age': '22', 'Marks': '90'}
Binary files जैसे image/video को पढ़ने के लिए mode में "rb" का उपयोग किया जाता है।
# Reading binary data
with open("photo.jpg", "rb") as f:
data = f.read()
print("Total bytes read:", len(data))
Output:
Total bytes read: 24567
💡 Tip: Binary data को normally print नहीं किया जा सकता, लेकिन आप इसकी length या copy कर सकते हैं।
# Counting words and lines
lines = words = 0
with open("demo.txt", "r") as f:
for line in f:
lines += 1
words += len(line.split())
print("Total Lines:", lines)
print("Total Words:", words)
Output:
Total Lines: 3
Total Words: 9
csv module.File में data को store करने के लिए Python write() और writelines() functions provide करता है। आप text, binary और CSV files तीनों में data write कर सकते हैं। File को write करने से पहले उसे proper mode में open करना जरूरी है जैसे "w", "a", "wb" आदि।
Text files में human-readable text लिखा जाता है। "w" mode नया file बनाता है या पुराने data को overwrite करता है। "a" mode existing file में नया data जोड़ता है।
# Writing into a file
with open("info.txt", "w") as f:
f.write("Welcome to Python File Handling!\n")
f.write("This is the second line.\n")
print("Data written successfully.")
Output:
Data written successfully.
(File info.txt created with two lines.)
अगर आप पुराने content को delete किए बिना नया data जोड़ना चाहते हैं, तो file को "a" या "a+" mode में खोलिए।
# Append mode
with open("info.txt", "a") as f:
f.write("This line is added later.\n")
print("New line appended successfully.")
Output:
New line appended successfully.
writelines()
writelines() function एक list या tuple of strings accept करता है
और सभी lines को एक साथ write करता है।
lines = [
"Python makes file handling easy.\n",
"It supports text, binary, and CSV files.\n",
"Practice makes you perfect!\n"
]
with open("notes.txt", "w") as f:
f.writelines(lines)
print("Multiple lines written successfully.")
Output:
Multiple lines written successfully.
Binary files में data bytes format में store होता है। इन्हें handle करने के लिए file को "wb" या "rb" mode में खोलना होता है। इस example में हम एक image file को copy करेंगे।
# Copying image file
with open("photo.jpg", "rb") as src:
data = src.read()
with open("photo_copy.jpg", "wb") as dest:
dest.write(data)
print("Binary file written (image copied) successfully.")
Output:
Binary file written (image copied) successfully.
💡 Note: Binary data को print नहीं किया जा सकता, लेकिन length या copy की जा सकती है।
CSV files में data rows और columns के रूप में store होता है। Python में इन्हें handle करने के लिए built-in csv module का उपयोग किया जाता है।
import csv
import csv
# Writing student records into CSV
with open("students.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "Marks"])
writer.writerow(["Ravi", 20, 85])
writer.writerow(["Anita", 22, 90])
writer.writerow(["Kiran", 21, 95])
print("CSV file written successfully!")
Output:
CSV file students.csv created successfully with student details.
DictWriter class dictionary objects को CSV rows के रूप में लिखता है। यह fieldnames का उपयोग करता है columns को identify करने के लिए।
import csv
data = [
{"Name": "Ravi", "Age": 20, "Marks": 85},
{"Name": "Anita", "Age": 22, "Marks": 90},
{"Name": "Kiran", "Age": 21, "Marks": 95}
]
with open("students_dict.csv", "w", newline="") as file:
fieldnames = ["Name", "Age", "Marks"]
writer = csv.DictWriter(file, fieldnames=fieldnames)
writer.writeheader()
writer.writerows(data)
print("CSV file (dictionary) written successfully.")
Output:
CSV file (dictionary) written successfully.
इस example में user से नाम और उम्र लेकर file में store किया गया है।
name = input("Enter your name: ")
age = input("Enter your age: ")
with open("userdata.txt", "w") as f:
f.write("Name: " + name + "\\n")
f.write("Age: " + age + "\\n")
print("User data saved successfully.")
Output:
Enter your name: Rahul
Enter your age: 19
User data saved successfully.
with open("numbers.txt", "w") as f:
for i in range(1, 11):
f.write(str(i) + "\\n")
print("Numbers written to file successfully.")
Output:
Numbers written to file successfully.
(File contains 1 to 10 on new lines.)
| Feature | Write Mode ("w") | Append Mode ("a") |
|---|---|---|
| File Creation | Creates new or overwrites existing file | Creates file if not present |
| Existing Data | Deleted | Preserved |
| Use Case | Start new content | Add more data at end |
write(), writelines(), and for CSV — csv.writer()."a" mode.csv module (with writer or DictWriter)."wb" mode and write bytes data.Python में files के साथ काम करते समय कुछ built-in file object methods और os module functions बहुत महत्वपूर्ण होते हैं। ये methods हमें file के अंदर data read/write करने, position control करने, और file की properties जानने में मदद करते हैं।
जब आप open() से कोई file खोलते हैं, तो Python एक file object return करता है
जिसमें कुछ built-in properties होती हैं।
# Opening file in write mode
f = open("demo.txt", "w")
print("File Name:", f.name)
print("Mode:", f.mode)
print("Is File Closed?:", f.closed)
f.close()
print("After closing:", f.closed)
Output:
File Name: demo.txt
Mode: w
Is File Closed?: False
After closing: True
💡 Explanation: - f.name → file का नाम बताता है। - f.mode → file किस mode में खुली है। - f.closed → True/False बताता है कि file बंद है या नहीं।
File pointer की current position को जानने और बदलने के लिए tell() और seek() का उपयोग किया जाता है।
# Writing and reading file pointer position
with open("demo.txt", "w") as f:
f.write("Hello Python World!")
with open("demo.txt", "r") as f:
print("Current position:", f.tell())
content = f.read(5)
print("Read content:", content)
print("After reading 5 chars, position:", f.tell())
f.seek(0)
print("After seek(0), position:", f.tell())
Output:
Current position: 0
Read content: Hello
After reading 5 chars, position: 5
After seek(0), position: 0
💡 Explanation: - tell() file pointer की current position बताता है। - seek(0) pointer को file की शुरुआत पर ले जाता है।
ये functions file को line-by-line पढ़ने के लिए उपयोग होते हैं।
with open("demo.txt", "r") as f:
line1 = f.readline()
print("Line 1:", line1)
Output:
Line 1: Hello Python World!
with open("demo.txt", "r") as f:
all_lines = f.readlines()
print("All lines as list:", all_lines)
Output:
All lines as list: ['Hello Python World!']
write() एक बार में एक string लिखता है, जबकि writelines() कई lines एक साथ लिख सकता है।
lines = ["Line 1\\n", "Line 2\\n", "Line 3\\n"]
with open("sample.txt", "w") as f:
f.write("This is a single line.\\n")
f.writelines(lines)
print("Data written successfully.")
Output:
Data written successfully.
Python का os module operating system level पर files और folders को manage करने के लिए इस्तेमाल होता है। नीचे कुछ commonly used functions दिए गए हैं:
import os
# Check if file exists
if os.path.exists("sample.txt"):
print("File exists!")
# Rename file
os.rename("sample.txt", "renamed.txt")
# Delete file
os.remove("renamed.txt")
print("File renamed and deleted successfully!")
Output:
File exists!
File renamed and deleted successfully!
💡 Explanation:
- os.path.exists() → file मौजूद है या नहीं बताता है।
- os.rename(old, new) → file का नाम बदलता है।
- os.remove() → file delete करता है।
CSV files के साथ काम करने से पहले check करना जरूरी है कि file मौजूद है या नहीं,
ताकि FileNotFoundError से बचा जा सके।
import os, csv
filename = "students.csv"
if os.path.exists(filename):
with open(filename, "r") as file:
reader = csv.reader(file)
print("CSV Data:")
for row in reader:
print(row)
else:
print("CSV file not found!")
Output:
CSV Data:
['Name', 'Age', 'Marks']
['Ravi', '20', '85']
['Anita', '22', '90']
os.stat() function file की detailed information देता है जैसे size, creation time, etc.
import os
stats = os.stat("demo.txt")
print("File Size (bytes):", stats.st_size)
print("Last Modified:", stats.st_mtime)
Output:
File Size (bytes): 22
Last Modified: 1731106574.0567296
os.path.exists("filename").os.remove("filename").Python में file operations को दो categories में divide किया जा सकता है: Reading (data पढ़ना) और Writing (data लिखना)। इस chapter में हम text, binary, CSV और pickle files के लिए combined operations समझेंगे।
Text files में simple human-readable text होता है।
इन्हें "r" और "w" modes से खोला जाता है।
# Write data
with open("textdata.txt", "w") as f:
f.write("Python File Handling is Fun!\n")
f.write("Let's learn reading and writing both.")
# Read same file
with open("textdata.txt", "r") as f:
content = f.read()
print("File Content:\n", content)
Output:
Python File Handling is Fun!
Let's learn reading and writing both.
CSV files tabular format में data store करती हैं। इन्हें handle करने के लिए csv module का उपयोग किया जाता है।
import csv
# Writing CSV file
with open("students.csv", "w", newline="") as file:
writer = csv.writer(file)
writer.writerow(["Name", "Age", "Marks"])
writer.writerow(["Ravi", 20, 85])
writer.writerow(["Anita", 22, 90])
# Reading CSV file
with open("students.csv", "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
Output:
['Name', 'Age', 'Marks']
['Ravi', '20', '85']
['Anita', '22', '90']
Binary files में text नहीं बल्कि raw data (bytes) store होता है, जैसे images, videos, या audio files।
# Copying an image file
with open("photo.jpg", "rb") as src:
data = src.read()
with open("photo_copy.jpg", "wb") as dest:
dest.write(data)
print("Binary file copied successfully!")
Output:
Binary file copied successfully!
💡 Binary files को पढ़ते समय text encoding नहीं होती — data bytes format में ही read/write किया जाता है।
जब हम किसी Python object (जैसे list, dictionary या class object) को file में store करना चाहते हैं, तो simple text writing से possible नहीं होता। इसके लिए Python pickle module provide करता है।
👉 Pickling → Python object को byte stream में convert कर file में save करना।
👉 Unpickling → File से byte stream को वापस Python object में convert करना।
import pickle
# Original Python object
student = {"Name": "Ravi", "Age": 20, "Marks": [85, 90, 88]}
# Pickling (Writing object to file)
with open("student.dat", "wb") as f:
pickle.dump(student, f)
print("Object pickled (saved) successfully!")
# Unpickling (Reading object back)
with open("student.dat", "rb") as f:
data = pickle.load(f)
print("Unpickled Object:", data)
Output:
Object pickled (saved) successfully!
Unpickled Object: {'Name': 'Ravi', 'Age': 20, 'Marks': [85, 90, 88]}
💡 Explanation:
- pickle.dump(obj, file) → object को file में लिखता है (binary format)।
- pickle.load(file) → file से object को वापस Python format में लाता है।
आप एक ही binary file में कई objects को भी pickle कर सकते हैं।
import pickle
data1 = {"Name": "Anita", "Marks": 90}
data2 = [10, 20, 30, 40]
data3 = ("Python", "Pickle", "Example")
# Writing multiple objects
with open("multi.dat", "wb") as f:
pickle.dump(data1, f)
pickle.dump(data2, f)
pickle.dump(data3, f)
# Reading back
with open("multi.dat", "rb") as f:
obj1 = pickle.load(f)
obj2 = pickle.load(f)
obj3 = pickle.load(f)
print(obj1)
print(obj2)
print(obj3)
Output:
{'Name': 'Anita', 'Marks': 90}
[10, 20, 30, 40]
('Python', 'Pickle', 'Example')
इस example में हम एक dictionary को pickle करेंगे, फिर read करके modify करेंगे और दोबारा save करेंगे।
import pickle
student = {"Name": "Kiran", "Age": 21, "Marks": 95}
# Pickle (Save)
with open("datafile.dat", "wb") as f:
pickle.dump(student, f)
# Unpickle (Read)
with open("datafile.dat", "rb") as f:
data = pickle.load(f)
print("Before Update:", data)
# Modify and re-pickle
data["Marks"] = 98
with open("datafile.dat", "wb") as f:
pickle.dump(data, f)
print("After Update Saved Successfully!")
Output:
Before Update: {'Name': 'Kiran', 'Age': 21, 'Marks': 95}
After Update Saved Successfully!
pickle module."wb" for writing, "rb" for reading.pickle.dump() calls.जब हम file operations करते हैं (read/write), तो कभी-कभी errors या exceptions आ सकते हैं — जैसे file का exist न होना, permission denied होना, या data corrupt होना। ऐसे में Python का try-except mechanism program को crash होने से बचाता है।
Exception handling का मतलब है error को handle करना ताकि program रुके नहीं। Python में errors को handle करने के लिए try, except, else, finally blocks का उपयोग किया जाता है।
try:
# Risky code
except ExceptionType:
# Error handling code
else:
# Runs if no error occurs
finally:
# Runs always (for cleanup)
try:
f = open("unknown.txt", "r")
data = f.read()
print(data)
except FileNotFoundError:
print("Error: File does not exist.")
finally:
print("Program finished.")
Output:
Error: File does not exist.
Program finished.
💡 Explanation:
- अगर file मौजूद नहीं है तो FileNotFoundError raise होता है।
- Program crash नहीं होता क्योंकि exception handle कर लिया गया।
आप एक साथ कई प्रकार के errors handle कर सकते हैं।
try:
f = open("demo.txt", "r")
data = f.read()
print("File data:", data)
except FileNotFoundError:
print("Error: File not found.")
except PermissionError:
print("Error: Permission denied.")
except Exception as e:
print("Other error:", e)
finally:
print("Execution completed.")
Output:
File data: (content of demo.txt)
Execution completed.
💡 Explanation:
- FileNotFoundError → File नहीं मिली।
- PermissionError → File को access करने की अनुमति नहीं।
- Exception → सभी बाकी errors को handle करता है।
with open() Safelywith open() block automatically file close कर देता है और error आने पर भी resource leak नहीं होता।
try:
with open("students.txt", "r") as f:
print(f.read())
except FileNotFoundError:
print("File missing! Please create it first.")
Output:
File missing! Please create it first.
IOError तब आता है जब read/write operation में कोई input/output problem होती है।
try:
f = open("/restricted_folder/data.txt", "w")
f.write("Testing file write...")
except IOError:
print("I/O Error: Cannot access the file.")
finally:
print("I/O operation attempted.")
Output:
I/O Error: Cannot access the file.
I/O operation attempted.
- else: block तब execute होता है जब कोई error नहीं आती। - finally: block हमेशा execute होता है (cleanup tasks जैसे file close करना)।
try:
f = open("example.txt", "w")
f.write("This is error-free file writing.")
except IOError:
print("I/O error occurred.")
else:
print("File written successfully!")
finally:
f.close()
print("File closed safely.")
Output:
File written successfully!
File closed safely.
इस example में user से file का नाम लिया गया है, और read करने की कोशिश की गई है। अगर file नहीं मिली तो user को नया file बनाने का option दिया जाता है।
filename = input("Enter file name: ")
try:
with open(filename, "r") as f:
print(f.read())
except FileNotFoundError:
print("File not found. Creating new file...")
with open(filename, "w") as f:
f.write("New file created successfully!")
print("File created:", filename)
Output:
Enter file name: notes.txt
File not found. Creating new file...
File created: notes.txt
| Exception | Description |
|---|---|
| FileNotFoundError | File नहीं मिली |
| PermissionError | Access permission नहीं है |
| IOError | Read/Write error |
| IsADirectoryError | जब file path directory हो |
| ValueError | Invalid mode या operation |
except blocks or combine them using tuple syntax.जब Python program को terminal या command prompt से run किया जाता है, तो हम program के साथ कुछ extra values pass कर सकते हैं — इन्हें Command Line Arguments कहा जाता है। Python में इन्हें handle करने के लिए sys module का उपयोग किया जाता है।
👉 Command Line Arguments से हम runtime पर user input दे सकते हैं
बिना input() function का उपयोग किए।
Command line arguments access करने के लिए Python का sys module import करना पड़ता है। ये arguments एक list के रूप में store होते हैं — sys.argv में।
import sys
print(sys.argv)
अगर आप file को इस तरह चलाते हैं:
python myfile.py one two three
Output:
['myfile.py', 'one', 'two', 'three']
💡 Note:
- sys.argv[0] हमेशा program का नाम होता है।
- बाकी elements command line से pass किए गए arguments होते हैं।
import sys
print("All Arguments:", sys.argv)
print("Number of Arguments:", len(sys.argv))
for i in range(len(sys.argv)):
print(f"Argument {i}:", sys.argv[i])
Command:
python args_demo.py hello world python
Output:
All Arguments: ['args_demo.py', 'hello', 'world', 'python']
Number of Arguments: 4
Argument 0: args_demo.py
Argument 1: hello
Argument 2: world
Argument 3: python
Command line arguments string form में आते हैं, इसलिए उन्हें int() या float() में convert करना ज़रूरी है।
import sys
# python sum_args.py 12 8
a = int(sys.argv[1])
b = int(sys.argv[2])
print("Sum =", a + b)
Output:
Sum = 20
💡 Note: IndexError avoid करने के लिए पहले argument count check करें।
import sys
if len(sys.argv) != 3:
print("Usage: python sum_args.py num1 num2")
else:
a = int(sys.argv[1])
b = int(sys.argv[2])
print("Sum =", a + b)
Output:
python sum_args.py 5 10 → Sum = 15
python sum_args.py → Usage: python sum_args.py num1 num2
import sys
n = int(sys.argv[1])
fact = 1
for i in range(1, n + 1):
fact *= i
print("Factorial of", n, "is", fact)
Command:
python fact.py 5
Output:
Factorial of 5 is 120
import sys
if len(sys.argv) != 2:
print("Usage: python readfile.py filename")
else:
filename = sys.argv[1]
try:
with open(filename, "r") as f:
print(f.read())
except FileNotFoundError:
print("Error: File not found.")
Command:
python readfile.py notes.txt
Output:
(Displays content of notes.txt)
import sys, csv
if len(sys.argv) != 2:
print("Usage: python readcsv.py filename.csv")
else:
filename = sys.argv[1]
try:
with open(filename, "r") as file:
reader = csv.reader(file)
for row in reader:
print(row)
except FileNotFoundError:
print("CSV file not found.")
Command:
python readcsv.py students.csv
Output:
['Name', 'Age', 'Marks']
['Ravi', '20', '85']
['Anita', '22', '90']
len(sys.argv) बताता है कि कितने arguments pass किए गए हैं।
इससे validation करना आसान होता है।
import sys
print("Total Arguments Passed:", len(sys.argv))
Output:
python test.py 10 20 30
Total Arguments Passed: 4
len(sys.argv).int() or float().IndexError if you access a non-existent index.