【发布时间】:2014-06-10 18:31:34
【问题描述】:
我有一个 python 程序,它创建一个包含用户名和密码的文本文件(这里安全不是问题)。
我想知道如何做到这一点,以便在程序的初始运行中询问用户要将文本文件保存在哪里,但在所有其他时间它都知道查看该位置而不提示用户。
【问题讨论】:
-
向我们展示您的代码将有助于确定您已经尝试过什么。
我有一个 python 程序,它创建一个包含用户名和密码的文本文件(这里安全不是问题)。
我想知道如何做到这一点,以便在程序的初始运行中询问用户要将文本文件保存在哪里,但在所有其他时间它都知道查看该位置而不提示用户。
【问题讨论】:
您需要在静态位置保存另一个文本文件,以便在以后运行时跟踪每个用户的目录。每次运行程序时,您都必须将该文本文件中的数据导入字典,检查用户是否已经在该字典中,然后将字典中的数据写回文件中(如果已更改) .
【讨论】:
假设您使用的是 Python 2:
path = raw_input("enter file path: ") # Change "raw_input" to "input" for Python 3
f = open(path, 'w')
请注意,这不会验证您要保存文件的目录是否存在!为此,您可能需要检查目录是否存在:
dirname = os.path.dirname(path)
if not os.path.isdir(dirname):
print("Directory '{0}' does not exist!".format(dirname))
exit
【讨论】:
path 写入配置文件。然后下次启动程序时,检查配置文件是否有上一次运行的路径。如果是这样,那么在不提示用户的情况下继续。
怎么样:
def prompt_user():
filepath = raw_input("filepath: ")
with open('file_path.txt','w+') as f:
f.write(filepath)
return
try:
with open('file_path.txt','r'):
password_file_path = f.readlines()
except Exception, e:
print('oops',e)
if os.path.exists(password_file_path):
pass
else:
prompt_user()
【讨论】: