【问题标题】:Python program won't run correctly when opened from folder or desktop, but works fine when run in IDLEPython 程序从文件夹或桌面打开时无法正常运行,但在 IDLE 中运行时可以正常运行
【发布时间】:2018-11-10 19:57:59
【问题描述】:

我创建了一个简单的任务计时程序,在该程序中,用户按下一个键来启动计时器,然后再次按下来停止。程序显示经过的时间。当我运行程序时,这一切都很好,但是在此之后我将时间和任务名称保存到文件中。在 IDLE(和 NetBeans)中运行时,此保存完美。然而,在命令窗口中,程序关闭,而不是在短暂显示回溯错误之前。数据未保存到文件中(与我的程序位于同一文件夹中)。

代码如下:

*import time
task = input('What task are you completing?\n')
print('Press ENTER to begin. Afterwards, press ENTER to "click" the stopwatch. Press Ctrl-C to quit.')
input()                    
print('Started.')
startTime = time.time()    
lastTime = startTime

while True:
        input()

        totalTime = round(time.time() - startTime, 2)

        totalTime = str(totalTime)

        seconds = int(float(totalTime))

        minutes, seconds = divmod(seconds, 60)
        hours, minutes = divmod(minutes, 60)
        periods = [('hours', hours), ('minutes', minutes), ('seconds', seconds)]
        time_string = ', '.join('{} {}'.format(value, name)
                                for name, value in periods
                                if value)

        print(str(task) + ' took: ' + time_string)
        time.sleep(2)
        print('Saving to file')
        time.sleep(3)



        writefile = open('Timelog.csv','a')
        writefile.write(task + ', ' + time_string + '')
        writefile.close()
        break
end = input('Press enter to close')

非常感谢任何帮助。

【问题讨论】:

  • hmm 使用命令行对我来说很好用,你是如何执行文件的?回溯说什么?
  • 双击它所在的文件夹,不确定回溯说什么,我想检查的唯一方法是记录我的屏幕并放慢速度。出于兴趣,数据是否保存到文件中? (假设你创建了一个同名的文件)谢谢
  • 是的,它将数据保存到 csv 文件中
  • 请也发布回溯错误。 (我猜当您在终端中执行程序时,您无权写入 csv 文件 - 与从 IDE 运行时相比 - 但这只是猜测)

标签: python stopwatch traceback


【解决方案1】:

您是否有机会打开命令提示符/终端会话并从那里执行?这会让你抓住痕迹。

我猜 quant 拥有它的权利,而您遇到了某种访问/权限障碍。您也可以尝试保存到尚不存在的文件名;也许它只是覆盖了使用 IDE 创建的文件,这就是问题所在。

【讨论】:

  • 嗨皮特,感谢您的建议。我从 cmd 运行它,瞧,没有错误 - 代码运行完美。猜猜就是这样 - 很少重启不会解决哈哈。
  • 很高兴它帮助了马特!
猜你喜欢
  • 2021-12-15
  • 2021-03-14
  • 2020-09-16
  • 2011-08-13
  • 1970-01-01
  • 2013-04-02
  • 1970-01-01
  • 2018-12-27
相关资源
最近更新 更多