1

我运行这个程序来拍摄我的屏幕快照并保存它但收到一条错误消息

import os
import sys
import time
import Image
import ImageGrab

SaveDirectory=r'C:\Documents and Settings\User\My Documents\My Pictures'
ImageEditorPath=r'C:\WINDOWS\system32\mspaint.exe'
img=ImageGrab.grab()
saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d%_%H_%M_%S')+'.png')
img.save(saveas)
editorstring='""%s" "%s"'% (ImageEditorPath,saveas) 
os.system(editorstring)

这是错误消息:

Traceback (most recent call last):
  File "C:/Python27/butt", line 10, in <module>
    saveas=os.path.join(SaveDirectory,'ScreenShot_'+time.strftime('%Y_%m_%d%_%H_%M_%S')+'.png')
ValueError: Invalid format string
4

2 回答 2

2

您的问题是%_格式字符串中的strftime- 它不是有效值。用以下内容替换格式字符串,你应该没问题:

'%Y_%m_%d_%H_%M_%S'

您可以判断格式字符串有问题,因为引发的错误 ( ValueError: Invalid format string) 指的是格式字符串,而第 10 行中唯一的格式字符串就是这个。您可以查看文档以查看哪些字符是有效实体。 %_不是其中之一,我猜这只是一个印刷错误。

于 2013-04-15T23:50:29.040 回答
1

时间上缺少一些东西:

str_time = time.strftime(your_real_date,'%Y_%m_%d_%H_%M_%S')
saveas=os.path.join(SaveDirectory,'ScreenShot_'+ str_time +'.png')

And each time, a little checking at Python Docs: 8.1.7. strftime() and strptime() Behavior to ensure the use of any string/date convertion

于 2013-04-15T23:51:12.170 回答