我正在尝试创建一个简单的输出文件,其中包含时间戳(出现刺激时)和刺激的颜色。
我能够只用颜色编写一个文件,但每当我尝试创建一个包含时间戳和颜色的文件时,我都会收到错误。 “TypeError:无法连接'str'和'datetime.datetime'对象”
以下代码:
from psychopy import visual, core
import random
import time
import datetime
import time
from time import strftime
f = open('2015-07-15-Random-Output.txt', 'w')
print f
file = open ('2015-07-15-Random-Output.txt', 'w')
win = visual.Window([800,800],monitor="testmonitor", units="deg")
HolaMundo = "Hola Mundo"
for frameN in range(10):
MyColor = random.choice(['red','blue','green','pink','purple','orange','yellow','black','white'])
time = datetime.datetime.now()
print time
data = MyColor + str(time)
msg = visual.TextStim(win, text=HolaMundo,pos=[-4,0],color=MyColor)
msg.draw()
win.flip()
core.wait(.1)
datetime.datetime.now
file.write(time + '\n')
file.close()
答案 0 :(得分:1)
datetime.datetime.now
仅引用该方法,但不会调用它。它应该是str(datetime.datetime.now())
或:
time = datetime.datetime.now()
time.strftime('%m/%d/%Y') #formats the date as a string
有关格式here
的更多信息引用上一个问题here
答案 1 :(得分:0)
我认为这是你的问题:
file.write(time + '\n')
time
变量不是字符串。你想要的是这个:
file.write(data+ '\n')
答案 2 :(得分:0)
Datetime是一个对象,它不会自动格式化。你需要使用strftime [1]才能让它看起来像你喜欢的样子。根据您的文件名,您可以通过以下方式在年 - 月 - 日进行设置:
timeString = time.strftime('%Y-%d-%m')
如果您想要自纪元以来的秒数,那么
timeString = time.strftime('%s')
然后你应该在你写入文件时打印timeString而不是时间:
file.write(timeString + '\n')
[1] - https://docs.python.org/2/library/datetime.html#strftime-strptime-behavior
答案 3 :(得分:0)
MyColor = random.choice(['red','blue','green','pink','purple','orange','yellow','black','white'])
time = str(datetime.datetime.now())
data = MyColor + " " + time
msg = visual.TextStim(win, text=Phrase,pos=[0,4],color=MyColor)
msg.draw()
win.flip()
core.wait(.1)
file.write(data + '\n')
谢谢!感谢帮助,我想我已经明白了。
答案 4 :(得分:0)
要连接它们,你必须执行datetime对象的str()。也:
f = open('2015-07-15-Random-Output.txt', 'w')
print f
file = open ('2015-07-15-Random-Output.txt', 'w')
如果你只是删除file = open line而不是这样做,这有点多余和简单:
from psychopy import visual, core
import random
import time
import datetime
import time
from time import strftime
with open('2015-07-15-Random-Output.txt', 'w') as f:
print f
win = visual.Window([800,800],monitor="testmonitor", units="deg")
HolaMundo = "Hola Mundo"
for frameN in range(10):
MyColor = random.choice(['red','blue','green','pink','purple','orange','yellow','black','white'])
time = datetime.datetime.now()
print time
data = MyColor + str(time)
msg = visual.TextStim(win, text=HolaMundo,pos=[-4,0],color=MyColor)
msg.draw()
win.flip()
core.wait(.1)
datetime.datetime.now
f.write(time + '\n')
f.close()