อ่านและเขียนไฟล์อย่างสะอาดด้วย with แลกเปลี่ยนข้อมูลด้วย JSON และจัดระเบียบโค้ดของคุณให้เป็นมอดูลที่นำเข้าได้
เปิดบทเรียนนี้ใน Kodokonการอ่านและเขียนไฟล์คืองานประจำวันของโปรแกรมจริง ไม่ว่าจะเป็นการส่งออกข้อมูล ล็อก หรือไฟล์ตั้งค่า คำสงวน with เปิดไฟล์และ รับประกันว่ามันจะถูกปิด แม้จะเกิดข้อผิดพลาดขึ้นกลางบล็อกก็ตาม นี่เป็นวิธีเดียวในระดับมืออาชีพที่ใช้เปิดไฟล์ หากไม่มีมัน การลืม close() อาจทำให้ข้อมูลเสียหายหรือใช้ทรัพยากรของระบบจนหมด
lines = ["alpha", "beta", "gamma"]
with open("notes.txt", "w", encoding="utf-8") as f:
for line in lines:
f.write(line + "\n")
with open("notes.txt", encoding="utf-8") as f:
content = f.read()
print(content)สำหรับข้อมูลที่มีโครงสร้าง อย่าคิดค้นรูปแบบของตัวเองขึ้นมา มอดูล json จากไลบรารีมาตรฐานแปลงดิกชันนารีและลิสต์ให้เป็นข้อความ และแปลงกลับได้ด้วย มันคือรูปแบบสากลสำหรับแลกเปลี่ยนข้อมูลระหว่างโปรแกรม API และไฟล์ตั้งค่า
import json
config = {"debug": True, "retries": 3}
with open("config.json", "w", encoding="utf-8") as f:
json.dump(config, f, indent=2)
with open("config.json", encoding="utf-8") as f:
loaded = json.load(f)
print(loaded["retries"]) # 3มอดูล (module) ก็คือไฟล์ .py ธรรมดา ๆ นั่นเอง import billing โหลด billing.py และรันเนื้อหาของมันเพียงครั้งเดียว จงจัดระเบียบโค้ดตามหน้าที่ความรับผิดชอบ - มอดูลหนึ่งสำหรับการวางบิล อีกมอดูลสำหรับการจัดเก็บข้อมูล - และวางคำสั่ง import ไว้ด้านบนสุดของไฟล์ การทดสอบ if __name__ == "__main__" แยกสองสถานการณ์ออกจากกัน เมื่อไฟล์ถูกรันโดยตรง มันจะทำงานในบล็อกนี้ แต่เมื่อถูกนำเข้า มันจะข้ามบล็อกนี้ไป
def compute_total(prices):
return round(sum(prices), 2)
def main():
print(compute_total([9.99, 4.5, 20.0]))
if __name__ == "__main__":
main()python billing.py