Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

การใช้ FTP ใน Python (ftplib)

โมดูล ftplib ใน Standard Library ใช้เขียนโปรแกรมทำ FTP Jobs แบบอัตโนมัติ: เชื่อมต่อ FTP Server, ดึงไฟล์, ประมวลผลในเครื่อง

ตัวอย่างพื้นฐาน

import ftplib

ftp = ftplib.FTP('ftp.yourserver.com', 'yourusername', 'your@email.address')
print("File List:")
files = ftp.dir()
print(files)

ftp.cwd("/tmp")  # เปลี่ยน Working Directory
ftp.quit()       # ปิดการเชื่อมต่อ

การดาวน์โหลดไฟล์ (Download)

>> with open('local_file.txt', 'wb') as f:
...     ftp.retrbinary('RETR remote_file.txt', f.write)

การอัปโหลดไฟล์ (Upload)

>> with open('local_file.txt', 'rb') as f:
...     ftp.storbinary('STOR remote_file.txt', f)

การจัดการ Directory

>> ftp.mkd('new_folder')      # สร้างโฟลเดอร์
>>> ftp.rmd('old_folder')    # ลบโฟลเดอร์ (ต้องว่าง)
>>> ftp.cwd('subdir')        # เข้าโฟลเดอร์
>>> ftp.cwd('..')            # กลับไป parent

Passive vs Active Mode

>> ftp.set_pasv(True)   # Passive Mode (Default, ผ่าน Firewall/NAT ได้ดีกว่า)
>>> ftp.set_pasv(False) # Active Mode

Error Handling

>> try:
...     ftp = ftplib.FTP(host, user, passwd)
...     # ... operations ...
... except ftplib.all_errors as e:
...     print(f"FTP Error: {e}")
... finally:
...     ftp.quit()

Alternatives: requests-ftp, pyftpdlib (server side)