ಫೈಲ್ ಇನ್ಪುಟ್ ಮತ್ತು ಔಟ್ಪುಟ್
ಪೈಥಾನ್ನಲ್ಲಿ, ಫೈಲ್ ಇನ್ಪುಟ್/ಔಟ್ಪುಟ್ (I/O) ಎಂದರೆ ಪ್ರೋಗ್ರಾಮ್ನಿಂದ ಫೈಲ್ಗಳಿಗೆ ಡೇಟಾವನ್ನು ಬರೆಯುವುದು (ಔಟ್ಪುಟ್) ಮತ್ತು ಫೈಲ್ಗಳಿಂದ ಡೇಟಾವನ್ನು ಓದುವುದು (ಇನ್ಪುಟ್). ಇದು ಡೇಟಾವನ್ನು ಶಾಶ್ವತವಾಗಿ ಸಂಗ್ರಹಿಸಲು ಮತ್ತು ಮರುಬಳಕೆ ಮಾಡಲು ಅತ್ಯಗತ್ಯ.
ಫೈಲ್ಗೆ ಡೇಟಾ ಬರೆಯುವುದು (ಔಟ್ಪುಟ್)
ಫೈಲ್ಗೆ ಡೇಟಾವನ್ನು ಬರೆಯಲು, ನಾವು ಫೈಲ್ ಅನ್ನು 'w' (write) ಅಥವಾ 'a' (append) ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಬೇಕು.
'w'(Write Mode): ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದರ ಹಳೆಯ ವಿಷಯವನ್ನು ಸಂಪೂರ್ಣವಾಗಿ ಅಳಿಸಿಹಾಕಿ ಹೊಸದಾಗಿ ಬರೆಯಲು ಪ್ರಾರಂಭಿಸುತ್ತದೆ. ಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.'a'(Append Mode): ಫೈಲ್ ಅಸ್ತಿತ್ವದಲ್ಲಿದ್ದರೆ, ಅದರ ಕೊನೆಯಲ್ಲಿ ಹೊಸ ಡೇಟಾವನ್ನು ಸೇರಿಸುತ್ತದೆ. ಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ಅನ್ನು ರಚಿಸುತ್ತದೆ.
ಉದಾಹರಣೆ:
# 'w' ಮೋಡ್ ಬಳಸಿ ಫೈಲ್ ರಚಿಸಿ ಬರೆಯುವುದು
with open('logfile.txt', 'w', encoding='utf-8') as f:
f.write("ಲಾಗ್ ಫೈಲ್ ಪ್ರಾರಂಭವಾಯಿತು.\n")
# 'a' ಮೋಡ್ ಬಳಸಿ ಅಸ್ತಿತ್ವದಲ್ಲಿರುವ ಫೈಲ್ಗೆ ಸೇರಿಸುವುದು
with open('logfile.txt', 'a', encoding='utf-8') as f:
f.write("ಒಂದು ಹೊಸ ಈವೆಂಟ್ ಸಂಭವಿಸಿದೆ.\n")
print("'logfile.txt' ಫೈಲ್ ಅನ್ನು ಅಪ್ಡೇಟ್ ಮಾಡಲಾಗಿದೆ.")
ಫೈಲ್ನಿಂದ ಡೇಟಾ ಓದುವುದು (ಇನ್ಪುಟ್)
ಫೈಲ್ನಿಂದ ಡೇಟಾವನ್ನು ಓದಲು, ನಾವು ಫೈಲ್ ಅನ್ನು 'r' (read) ಮೋಡ್ನಲ್ಲಿ ತೆರೆಯಬೇಕು.
ಉದಾಹರಣೆ:
ಮೇಲೆ ರಚಿಸಿದ logfile.txt ಫೈಲ್ ಅನ್ನು ಓದೋಣ.
try:
with open('logfile.txt', 'r', encoding='utf-8') as f:
# ಫೈಲ್ನ ಸಂಪೂರ್ಣ ವಿಷಯವನ್ನು ಓದುವುದು
log_content = f.read()
print("--- ಫೈಲ್ನ ವಿಷಯ ---")
print(log_content)
print("--------------------")
except FileNotFoundError:
print("ದೋಷ: ಲಾಗ್ ಫೈಲ್ ಕಂಡುಬಂದಿಲ್ಲ.")
ಸಾಲು-ಸಾಲಾಗಿ ಓದುವುದು
ದೊಡ್ಡ ಫೈಲ್ಗಳೊಂದಿಗೆ ಕೆಲಸ ಮಾಡುವಾಗ, ಸಂಪೂರ್ಣ ಫೈಲ್ ಅನ್ನು ಒಂದೇ ಬಾರಿಗೆ ಮೆಮೊರಿ ಲೋಡ್ ಮಾಡುವುದು ಸಮರ್ಥವಲ್ಲ. ಬದಲಾಗಿ, ಫೈಲ್ ಅನ್ನು ಸಾಲು-ಸಾಲಾಗಿ ಓದುವುದು ಉತ್ತಮ.
print("--- ಸಾಲು-ಸಾಲಾಗಿ ಓದುವುದು ---")
try:
with open('logfile.txt', 'r', encoding='utf-8') as f:
for line in f:
# ಪ್ರತಿ ಸಾಲಿನ ಕೊನೆಯಲ್ಲಿರುವ ನ್ಯೂಲೈನ್ ಕ್ಯಾರೆಕ್ಟರ್ ತೆಗೆದುಹಾಕಲು .strip() ಬಳಸಿ
print(line.strip())
except FileNotFoundError:
print("ದೋಷ: ಲಾಗ್ ಫೈಲ್ ಕಂಡುಬಂದಿಲ್ಲ.")
with ಸ್ಟೇಟ್ಮೆಂಟ್ನ ಪ್ರಾಮುಖ್ಯತೆ
with ಸ್ಟೇಟ್ಮೆಂಟ್ ಅನ್ನು ಬಳಸುವುದು ಫೈಲ್ I/O ಗಾಗಿ ಅತ್ಯುತ್ತಮ ಅಭ್ಯಾಸವಾಗಿದೆ. ಏಕೆಂದರೆ:
- ಸ್ವಯಂಚಾಲಿತ ಫೈಲ್ ಮುಚ್ಚುವಿಕೆ:
withಬ್ಲಾಕ್ನಿಂದ ಹೊರಬಂದ ತಕ್ಷಣ ಫೈಲ್ ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಮುಚ್ಚಲ್ಪಡುತ್ತದೆ. - ದೋಷ ನಿರ್ವಹಣೆ:
withಬ್ಲಾಕ್ನೊಳಗೆ ದೋಷ ಸಂಭವಿಸಿದರೂ, ಫೈಲ್ ಸುರಕ್ಷಿತವಾಗಿ ಮುಚ್ಚಲ್ಪಡುತ್ತದೆ.
ಇದು ಡೇಟಾ ನಷ್ಟ ಮತ್ತು ಸಂಪನ್ಮೂಲ ಸೋರಿಕೆಯನ್ನು ತಡೆಯಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ.
ಫೈಲ್ I/O, ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸಲು, ಲಾಗ್ಗಳನ್ನು ನಿರ್ವಹಿಸಲು, ಕಾನ್ಫಿಗರೇಶನ್ಗಳನ್ನು ಲೋಡ್ ಮಾಡಲು, ಮತ್ತು ಇತರ ಹಲವು ನೈಜ-ಪ್ರಪಂಚದ ಅಪ್ಲಿಕೇಶನ್ಗಳಿಗೆ ಅಡಿಪಾಯವಾಗಿದೆ.