以手機進行定點攝影(2)-電腦下載手機裡的定點照片
前篇設定了手機的app,讓手機可以定點攝影,不過光只有拍照總是還是下載回來處理。可能有人會想,那就把手機拿下來接到電腦下載不就好了,或是在手機端再用無線服務傳輸不就好了。但是我想啊,最好的定點攝影情況就是一切都程式設計好了,讓它自己執行就好,省去自己去處理或是拿下手機。如果還要自己每天動手去做,那最後只會懶得做啦,而拿下手機,則不同日期的照片可能就會有位置偏差,如果後來要做什麼處理的話,就會對不上啊。為此,我就在電腦上用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()