我试着让我的工作更轻松,写下错误和解决同样错误的方法。程序本身在添加新错误时工作正常,但是我添加了一个函数来验证文件中是否存在错误,然后对其执行一些操作(尚未添加)。你知道吗
这个功能不起作用,我也不知道为什么。我试着调试它,但仍然找不到错误,也许是概念上的错误?你知道吗
不管怎样,这是我的全部代码。你知道吗
import sys
import os
err = {}
PATH = 'C:/users/userdefault/desktop/errordb.txt'
#def open_file(): #Not yet used
#file_read = open(PATH, 'r')
#return file_read
def verify_error(error_number, loglist): #Verify if error exists in file
for error in loglist:
if error_number in loglist:
return True
def dict_error(error_number, solution): #Puts input errors in dict
err = {error_number: solution}
return err
def verify_file(): #Verify if file exists. Return True if it does
archive = os.path.isfile(PATH)
return archive
def new_error():
file = open(PATH, 'r') #Opens file in read mode
loglist = file.readlines()
file.close()
found = False
error_number = input("Error number: ")
if verify_error(error_number, loglist) == True:
found = True
# Add new solution, or another solution.
pass
solution = str(input("Solution: "))
file = open(PATH, 'a')
error = dict_error(error_number, solution)
#Writes dict on file
file.write(str(error))
file.write("\n")
file.close()
def main():
verify = verify_file() #Verify if file exists
if verify == True:
new = str.lower(input("New job Y/N: "))
if new == 'n':
sys.exit()
while new == 'y':
new_error()
new = str.lower(input("New job Y/N: "))
else:
sys.exit()
else:
file = open(PATH, "x")
file.close()
main()
main()
为了澄清,程序执行良好,它不返回错误代码。它只是不会按我的预期方式执行,我是说,它应该验证某个错误号是否已经存在。你知道吗
提前感谢:)
我认为您遇到的问题是,您实际上并不是在文件中创建
dictionary object
并对其进行修改,而是在每次添加错误时创建额外的字典,然后使用.readlines()
方法将它们作为字符串列表读回。你知道吗一种更简单的方法是创建一个
dictionary
(如果不存在)并向其添加错误。我对你的代码做了一些修改,应该会有所帮助。你知道吗请注意,您必须创建一个新的
errordb
文件,此代码段才能工作。你知道吗希望这能有所帮助。如果您有任何进一步的问题,请在评论中联系我!你知道吗
参考文献:
我认为您的代码可能有几个问题,但我注意到的第一件事是,您正在将错误号和解决方案保存为
errorsdb.txt
中的字典,当您读回它们时,您正在将它们作为字符串列表读回:线路:
in
new_error
返回字符串列表。这意味着verify_error
将始终返回False
。你知道吗所以你有两个选择:
verify_error
修改为以下内容:errorsdb.txt
作为JSON文件加载,然后就有了一个字典。看起来像:下面是我要做的全部修改:
相关问题 更多 >
编程相关推荐