2024-10-01 07:31:42 发布
网友
我正在制作一个python程序,我想检查是否是用户第一次运行这个程序(firstTime == True)。但是,在它运行之后,我想将firstTime永久更改为False。(如果是第一次运行,我还想输入其他变量,但应该以相同的方式解决)。你知道吗
firstTime == True
False
有没有比仅仅从包含数据的文件中读取更好的方法?如果没有,我如何找到文件运行的位置(这样数据就在同一目录中)?你知道吗
如果要持久化数据,它将“最终”保存到磁盘文件(虽然可能有中间步骤,例如通过网络或数据库系统,但如果要持久化数据,它最终将保存在磁盘文件中的某个位置)。你知道吗
“找出你在哪里”
import os print os.path.dirname(os.path.abspath(__file__))
有不同的版本,但这是基本的想法。__file__在任何.py脚本或模块中,都给出了该文件所在的文件路径(当然,在交互命令行中不起作用,因为当时没有涉及任何文件;-)。你知道吗
__file__
.py
Python标准库中的os.path模块有许多有用的函数来操作路径字符串,这里我们使用两个函数:abspath来给出文件路径的绝对(而不是相对)版本,因此您不必关心当前的工作目录是什么;dirname只提取目录名(实际上,整个目录路径;-)并正确删除文件名(您不关心模块的名称是foo.py还是bar.py,只关心它所在的目录;-)。你知道吗
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
如果要持久化数据,它将“最终”保存到磁盘文件(虽然可能有中间步骤,例如通过网络或数据库系统,但如果要持久化数据,它最终将保存在磁盘文件中的某个位置)。你知道吗
“找出你在哪里”
有不同的版本,但这是基本的想法。
__file__
在任何.py
脚本或模块中,都给出了该文件所在的文件路径(当然,在交互命令行中不起作用,因为当时没有涉及任何文件;-)。你知道吗Python标准库中的
os.path
模块有许多有用的函数来操作路径字符串,这里我们使用两个函数:abspath
来给出文件路径的绝对(而不是相对)版本,因此您不必关心当前的工作目录是什么;dirname
只提取目录名(实际上,整个目录路径;-)并正确删除文件名(您不关心模块的名称是foo.py
还是bar.py
,只关心它所在的目录;-)。你知道吗如果程序第一次运行,只需在同一个目录中创建文件就足够了(当然,可以删除该文件,以便再次执行第一次运行,但这有时是有用的):
相关问题 更多 >
编程相关推荐