為此,我就在電腦上用python寫了程式,並用crontab定時執行這支程式。其實程式只有列出一半,另外一半則是會在別篇寫。
程式要做的就是用ftp連上手機,只下載特定時間範圍內的照片(5點到19點),因為其他時間天空都是暗的,下載也沒用。而檢視照片時間的方式則是用檔名去觀察,因為手機App的OpenCamera在拍照時,是直接以拍照時間作為檔名。
最後,無論是否是在特定時間範圍內,所有手機上的照片都會被這支程式刪除,這是為了騰出手機的空間,否則連續拍照幾天後,手機空間就會滿了。
import subprocess
import datetime
import os path = "/home/shawn-pc/桌面/SkyAndsatellite/" if not os.path.isdir(path): #檢查資料夾是否存在 os.mkdir(path)#從手機下載照片 from ftplib import FTP HOST = "192.168.1.116" PORT = 2221 pathFtp = "/opencamera" ftp = FTP() ftp.connect(HOST, PORT) ftp.login() ftp.cwd(pathFtp) filenames = ftp.nlst() for filename in filenames: if int(filename[13:15]) >=5 and int(filename[13:15]) <= 19: #下載在5點到19點的照片 dateFolder = filename[4:12] if not os.path.isdir(path + dateFolder+"/"): #檢查日期資料夾是否存在 os.mkdir(path + dateFolder+"/") if not os.path.isdir(path + dateFolder+"/"+"sky/"): #檢查日期資料夾裡的sky資料夾是否存在 os.mkdir(path + dateFolder+"/"+"sky/") local_filename = os.path.join(path + dateFolder+"/"+"sky/", filename) file = open(local_filename, 'wb') ftp.retrbinary('RETR '+ filename, file.write) print("download "+filename) file.close() ftp.delete(filename) ftp.quit()