อ่านไฟล์จากดิสก์
เปลี่ยนไฟล์ในเครื่องให้เป็นทรัพยากร MCP ที่อ่านได้แบบสด
อ่านไฟล์จากดิสก์ เป็นบทเรียน MCP Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน MCP Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
จากข้อมูลตายตัวสู่ข้อมูลปัจจุบัน
การส่งคืนสตริงที่เขียนตายตัวไว้ใช้ได้ดี แต่เซิร์ฟเวอร์จริงมักเปิดเผยไฟล์จริง คุณสามารถอ่านไฟล์จากดิสก์แล้วให้บริการเนื้อหาแบบปัจจุบันได้
อ่านภายในตัวจัดการ
ฟังก์ชันทรัพยากรของคุณเพียงเปิดไฟล์และส่งคืนข้อความ เนื่องจากฟังก์ชันทำงานทุกครั้งที่มีคำขอ ลูกข่ายจึงได้รับเนื้อหาปัจจุบันเสมอ 📂
ทรัพยากรไฟล์พื้นฐาน
เปิดไฟล์ อ่านไฟล์ แล้วส่งคืนสตริง ตอนนี้ทรัพยากรจะแสดงข้อมูลที่บันทึกอยู่บนดิสก์ ณ เวลาที่อ่าน
@mcp.resource("file:///notes.txt")
def notes():
with open("notes.txt") as f:
return f.read()ใช้ Pathlib อย่างเป็นระเบียบ
ไลบรารี pathlib อ่านไฟล์ขนาดเล็กได้ในบรรทัดเดียว และจัดการเส้นทางอย่างปลอดภัยในระบบต่าง ๆ ทำให้ตัวจัดการสั้นและชัดเจน
from pathlib import Path
@mcp.resource("file:///notes.txt")
def notes():
return Path("notes.txt").read_text()จัดการไฟล์ที่หายไป
ไฟล์อาจถูกลบหรือเปลี่ยนชื่อได้ ให้ครอบการอ่านไว้ เพื่อให้ไฟล์ที่หายไปส่งคืนข้อความข้อผิดพลาดที่ชัดเจน แทนที่จะทำให้เซิร์ฟเวอร์หยุดทำงาน
try:
return Path(p).read_text()
except FileNotFoundError:
raise ValueError("File not found")ระวังการเข้ารหัส
ไฟล์ข้อความมีการเข้ารหัส อ่านโดยระบุ utf-8 อย่างชัดเจน เพื่อให้อักขระที่มีเครื่องหมายกำกับและอักขระที่ไม่ใช่ภาษาอังกฤษยังคงอยู่ครบเมื่อส่งถึงโมเดล
Path("notes.txt").read_text(encoding="utf-8")ตรวจสอบขนาดไฟล์
การส่งคืนไฟล์ขนาดใหญ่จะส่งโทเค็นจำนวนมากให้โมเดลและอาจเกิน limits ทำให้ไฟล์ที่ให้บริการมีขนาดเล็ก หรืออ่านเฉพาะส่วนที่โมเดลต้องการจริง ๆ
อย่าเชื่อถือเส้นทางโดยอัตโนมัติ
หากเส้นทางมาจากอินพุต ผู้โจมตีอาจร้องขอไฟล์นอกโฟลเดอร์ของคุณได้ ให้จำกัดการอ่านไว้ภายในไดเรกทอรีฐานที่ปลอดภัยและอยู่ภายใต้การควบคุมของคุณเสมอ
แก้เส้นทางให้อยู่ภายในฐาน
คำนวณเส้นทางแบบสัมบูรณ์ แล้วตรวจสอบว่าเส้นทางยังอยู่ภายในรากที่อนุญาต วิธีนี้ป้องกันกลลวงการไล่ย้อนเส้นทาง เช่น การใช้จุดสองจุดเพื่อเลื่อนขึ้นไปยังโฟลเดอร์ด้านบน
base = Path("data").resolve()
target = (base / name).resolve()
if base not in target.parents: raise ValueError("Denied")อ่านอย่างเดียวโดยธรรมชาติ
ทรัพยากรอ่านได้อย่างเดียว ไม่เคยเขียนข้อมูล การให้บริการไฟล์ในรูปทรัพยากรจะเปิดเผยเนื้อหาโดยไม่เปิดโอกาสให้โมเดลแก้ไขไฟล์
ตรวจสอบการอ่านข้อมูลปัจจุบัน
เปลี่ยนไฟล์บนดิสก์ แล้วอ่านยูอาร์ไออีกครั้ง การเห็นข้อความใหม่ยืนยันว่าเซิร์ฟเวอร์ของคุณอ่านข้อมูลปัจจุบันแทนการเก็บเนื้อหาเก่าไว้ในแคช
ตรวจสอบอย่างรวดเร็ว
ตรวจสอบความปลอดภัยเมื่อให้บริการไฟล์
สรุปทบทวน
อ่านไฟล์ภายในตัวจัดการ เพื่อให้เนื้อหายังคงเป็นปัจจุบัน กำหนด utf-8 จัดการไฟล์ที่หายไป ตรวจสอบขนาด และจำกัดเส้นทางไว้ในรากที่ปลอดภัย ✅
คำถามที่พบบ่อย
บทเรียน “อ่านไฟล์จากดิสก์” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “อ่านไฟล์จากดิสก์” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส MCP Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส MCP Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “อ่านไฟล์จากดิสก์”
เปลี่ยนไฟล์ในเครื่องให้เป็นทรัพยากร MCP ที่อ่านได้แบบสด คุณปฏิบัติ MCP Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน MCP Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน MCP Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “อ่านไฟล์จากดิสก์” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน MCP Academy นี้ได้ไหม
ได้ บทเรียน MCP Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ