输入后存储自定义数据

2024-10-01 07:31:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在制作一个python程序,我想检查是否是用户第一次运行这个程序(firstTime == True)。但是,在它运行之后,我想将firstTime永久更改为False。(如果是第一次运行,我还想输入其他变量,但应该以相同的方式解决)。你知道吗

有没有比仅仅从包含数据的文件中读取更好的方法?如果没有,我如何找到文件运行的位置(这样数据就在同一目录中)?你知道吗


Tags: 文件数据方法用户程序目录falsetrue
2条回答

如果要持久化数据,它将“最终”保存到磁盘文件(虽然可能有中间步骤,例如通过网络或数据库系统,但如果要持久化数据,它最终将保存在磁盘文件中的某个位置)。你知道吗

“找出你在哪里”

import os
print os.path.dirname(os.path.abspath(__file__))

有不同的版本,但这是基本的想法。__file__在任何.py脚本或模块中,都给出了该文件所在的文件路径(当然,在交互命令行中不起作用,因为当时没有涉及任何文件;-)。你知道吗

Python标准库中的os.path模块有许多有用的函数来操作路径字符串,这里我们使用两个函数:abspath来给出文件路径的绝对(而不是相对)版本,因此您不必关心当前的工作目录是什么;dirname只提取目录名(实际上,整个目录路径;-)并正确删除文件名(您不关心模块的名称是foo.py还是bar.py,只关心它所在的目录;-)。你知道吗

如果程序第一次运行,只需在同一个目录中创建文件就足够了(当然,可以删除该文件,以便再次执行第一次运行,但这有时是有用的):

firstrunfile = 'config.dat'
if not  os.path.exists(firstrunfile):
    ## configuration here
    open(firstrunfile,'w').close() ## .write(configuration)
    print 'First run'
    firstTime == True
else:
    print 'Not first run'
    ## read configuration
    firstTime == False

相关问题 更多 >