ವಿಷಯಕ್ಕೆ ತೆರಳಿ

ಪೈಥಾನ್ ಫೈಲ್ ಹ್ಯಾಂಡ್ಲಿಂಗ್: ಸಂದರ್ಶನ ಪ್ರಶ್ನೆಗಳು ಮತ್ತು ಉತ್ತರಗಳು

1. ಪೈಥಾನ್‌ನಲ್ಲಿ ಫೈಲ್ ಅನ್ನು ಹೇಗೆ ತೆರೆಯುವುದು ಮತ್ತು ಮುಚ್ಚುವುದು?

ಉತ್ತರ: open() ಫಂಕ್ಷನ್ ಬಳಸಿ ಫೈಲ್ ಅನ್ನು ತೆರೆಯಬಹುದು. ಇದು ಎರಡು ಪ್ರಮುಖ ಆರ್ಗ್ಯುಮೆಂಟ್‌ಗಳನ್ನು ತೆಗೆದುಕೊಳ್ಳುತ್ತದೆ: ಫೈಲ್ ಹೆಸರು ಮತ್ತು ಮೋಡ್.

close() ಮೆಥಡ್ ಬಳಸಿ ಫೈಲ್ ಅನ್ನು ಮುಚ್ಚಬೇಕು. ಇದು ಫೈಲ್ ಹ್ಯಾಂಡಲ್‌ನಿಂದ ಬಳಸಿದ ಸಿಸ್ಟಮ್ ರಿಸೋರ್ಸ್‌ಗಳನ್ನು ಬಿಡುಗಡೆ ಮಾಡುತ್ತದೆ.

ಉದಾಹರಣೆ:

# ಫೈಲ್ ತೆರೆಯುವುದು
file = open("example.txt", "r")

# ಫೈಲ್ ಓದುವುದು
content = file.read()
print(content)

# ಫೈಲ್ ಮುಚ್ಚುವುದು
file.close()

2. with open(...) as ... ಸ್ಟೇಟ್‌ಮೆಂಟ್ ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು?

ಉತ್ತರ: with ಸ್ಟೇಟ್‌ಮೆಂಟ್ (ಕಾಂಟೆಕ್ಸ್ಟ್ ಮ್ಯಾನೇಜರ್) ಬಳಸುವುದು ಉತ್ತಮ ಅಭ್ಯಾಸ. ಏಕೆಂದರೆ, with ಬ್ಲಾಕ್‌ನಿಂದ ಹೊರಬಂದ ತಕ್ಷಣ ಫೈಲ್ ತಾನಾಗಿಯೇ ಮುಚ್ಚಲ್ಪಡುತ್ತದೆ, ಎರರ್ ಸಂಭವಿಸಿದರೂ ಸಹ. ಇದು file.close() ಅನ್ನು ಮರೆಯುವ ಸಾಧ್ಯತೆಯನ್ನು ತಪ್ಪಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ:

try:
    with open("example.txt", "r") as file:
        content = file.read()
        print(content)
except FileNotFoundError:
    print("File not found.")
# ಇಲ್ಲಿ file.close() ಬರೆಯುವ ಅಗತ್ಯವಿಲ್ಲ

3. ಫೈಲ್ ಓಪನಿಂಗ್ ಮೋಡ್‌ಗಳು ಯಾವುವು?

ಉತ್ತರ: ಕೆಲವು ಪ್ರಮುಖ ಫೈಲ್ ಓಪನಿಂಗ್ ಮೋಡ್‌ಗಳು:

  • 'r' (Read): ಓದಲು ಮಾತ್ರ. ಇದು ಡೀಫಾಲ್ಟ್ ಮೋಡ್. ಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ FileNotFoundError ಬರುತ್ತದೆ.
  • 'w' (Write): ಬರೆಯಲು ಮಾತ್ರ. ಫೈಲ್ ಇದ್ದರೆ, ಅದರ ಹಳೆಯ ಕಂಟೆಂಟ್ ಅಳಿಸಿಹಾಕಲ್ಪಡುತ್ತದೆ. ಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ರಚನೆಯಾಗುತ್ತದೆ.
  • 'a' (Append): ಫೈಲ್‌ನ ಕೊನೆಯಲ್ಲಿ ಹೊಸ ಕಂಟೆಂಟ್ ಸೇರಿಸಲು. ಫೈಲ್ ಇಲ್ಲದಿದ್ದರೆ, ಹೊಸ ಫೈಲ್ ರಚನೆಯಾಗುತ್ತದೆ.
  • 'r+' (Read and Write): ಓದಲು ಮತ್ತು ಬರೆಯಲು.
  • 'w+' (Write and Read): ಬರೆಯಲು ಮತ್ತು ಓದಲು. ಹಳೆಯ ಕಂಟೆಂಟ್ ಅಳಿಸುತ್ತದೆ.
  • 'a+' (Append and Read): ಸೇರಿಸಲು ಮತ್ತು ಓದಲು.

ಬೈನರಿ ಫೈಲ್‌ಗಳಿಗಾಗಿ (ಉದಾ: ಚಿತ್ರಗಳು), ಈ ಮೋಡ್‌ಗಳಿಗೆ 'b' ಸೇರಿಸಬೇಕು (ಉದಾ: 'rb', 'wb').

4. ಫೈಲ್‌ನಿಂದ ಕಂಟೆಂಟ್ ಓದಲು ಇರುವ ವಿವಿಧ ವಿಧಾನಗಳು ಯಾವುವು?

ಉತ್ತರ:

  • read(): ಸಂಪೂರ್ಣ ಫೈಲ್‌ನ ಕಂಟೆಂಟ್ ಅನ್ನು ಒಂದೇ ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಓದುತ್ತದೆ.
    content = file.read()
    
  • readline(): ಫೈಲ್‌ನಿಂದ ಒಂದೇ ಒಂದು ಸಾಲನ್ನು ಓದುತ್ತದೆ.
    line1 = file.readline()
    line2 = file.readline()
    
  • readlines(): ಫೈಲ್‌ನ ಎಲ್ಲಾ ಸಾಲುಗಳನ್ನು ಓದಿ, ಅವುಗಳನ್ನು ಒಂದು ಲಿಸ್ಟ್ ಆಗಿ ಹಿಂತಿರುಗಿಸುತ್ತದೆ. ಪ್ರತಿ ಸಾಲಿನ ಕೊನೆಯಲ್ಲಿ ನ್ಯೂಲೈನ್ ಕ್ಯಾರೆಕ್ಟರ್ (\n) ಇರುತ್ತದೆ.
    lines_list = file.readlines()
    
  • for ಲೂಪ್ ಬಳಸಿ: ದೊಡ್ಡ ಫೈಲ್‌ಗಳನ್ನು ಓದಲು ಇದು ಅತ್ಯುತ್ತಮ ವಿಧಾನ, ಏಕೆಂದರೆ ಇದು ಒಂದೇ ಬಾರಿಗೆ ಸಂಪೂರ್ಣ ಫೈಲ್ ಅನ್ನು ಮೆಮೊರಿಗೆ ಲೋಡ್ ಮಾಡುವುದಿಲ್ಲ.
    for line in file:
        print(line.strip())
    

5. seek() ಮತ್ತು tell() ಮೆಥಡ್‌ಗಳ ಉಪಯೋಗವೇನು?

ಉತ್ತರ:

  • tell(): ಫೈಲ್‌ನಲ್ಲಿ ಪ್ರಸ್ತುತ ಕರ್ಸರ್ (ಫೈಲ್ ಪಾಯಿಂಟರ್) ಇರುವ ಪೊಸಿಷನ್ ಅನ್ನು (ಬೈಟ್‌ಗಳಲ್ಲಿ) ಹಿಂತಿರುಗಿಸುತ್ತದೆ.
  • seek(): ಫೈಲ್‌ನಲ್ಲಿ ಕರ್ಸರ್ ಅನ್ನು ನಿರ್ದಿಷ್ಟ ಪೊಸಿಷನ್‌ಗೆ ಸರಿಸಲು ಬಳಸಲಾಗುತ್ತದೆ.

ಉದಾಹರಣೆ:

with open("example.txt", "r") as file:
    content = file.read(5)  # ಮೊದಲ 5 ಬೈಟ್‌ಗಳನ್ನು ಓದುತ್ತದೆ
    print(content)  # "Hello"

    current_pos = file.tell()
    print(f"Current position: {current_pos}")  # 5

    file.seek(0)  # ಕರ್ಸರ್ ಅನ್ನು ಫೈಲ್‌ನ ಆರಂಭಕ್ಕೆ ಸರಿಸುತ್ತದೆ
    content_again = file.read()
    print(content_again)