截取屏幕截圖我工作的腳本採取截圖每次1分鐘,但有一個問題,當我保存它給了我無效的參數,我不知道這是爲什麼。與PIL
代碼:
from PIL import ImageGrab
from PIL import Image
import time
import datetime
import os
def screenShot():
while True:
try:
date = str(datetime.date.today())
hour=str(datetime.datetime.now().strftime("%H"))
os.makedirs("D:/mine/" + date + "/" + hour)
except OSError,e:
if e.errno != 17:
raise
time.sleep(1)
pass
while True:
date = str(datetime.date.today())
hour = str(datetime.datetime.now().strftime("%H"))
date_time = str(datetime.datetime.now().strftime("%Y-%m-%d %H:%M:%S"))
img = ImageGrab.grab()
FILES_DIR = 'mine'
SAVE_PATH = "D:/"
LOGFILE_NAME = "%s.png" % date_time
LOGFILE_PATH = os.path.join(SAVE_PATH, FILES_DIR, LOGFILE_NAME)
img.save(LOGFILE_PATH)
break
time.sleep(60)
screenShot()
這是我得到的錯誤:
IOError: [Erno 22] Invalid argument: 'D:/mine\\2016-12-02 20:24:37.png'
我搜索了很多,我發現這個代碼,它的工作,但我不能看到這之間的不同代碼和我的代碼。
import os
import sys
import time
from PIL import ImageGrab
from PIL import Image
from os import environ
import random
n = -1
while True:
n += 1
# generate a random time between 120 and 300 sec
random_time = random.randrange(1,2)
# wait between 120 and 300 seconds (or between 2 and 5 minutes)
print "Next picture in: %.2f minutes" % (float(random_time)/60)
time.sleep(random_time)
img = ImageGrab.grab()
FILES_DIR = 'mine'
SAVE_PATH = "D:/"
#SAVE_PATH = os.path.expanduser("~") #It is cross-platform
LOGFILE_NAME = "test{n:0>5}.png".format(n = n)
LOGFILE_PATH = os.path.join(SAVE_PATH, FILES_DIR, LOGFILE_NAME)
print LOGFILE_PATH
img.save(LOGFILE_PATH)
我忘記了一些東西,但我不知道它是什麼。
您需要包括回溯。沒有這個,我們不知道這個問題是什麼。 –
當它看起來像在Windows上時,它爲什麼是'D:/'?是否存在「我的」存在?在網絡驅動器中是'D:',在文件名中不允許使用':'。 – dhke
代碼正在創建非法文件名。 Windows上的文件名不能包含「:」冒號。你將不得不將它們改爲合法的,比如'.'(句號)。 – martineau