Я застрял на пару дней над проблемой в моем проекте микро-адресной книги. У меня есть функция, которая записывает все записи из базы данных SQLite3 в файл для открытия через модуль ОС, но как только я пытаюсь открыть файл, Python выдает мне следующую ошибку:
Error while opening tempfile. Error:startfile: filepath should be string, bytes or os.PathLike, not _io.TextIOWrapper
Это код, который я должен записать в файл и открыть его:
source_file_name = open("C:\\workdir\\temp.txt","w")
#Fetching results from database and storing in result variable
self.cur.execute("SELECT id, first_name, last_name, address1, address2, zipcode, city, country, nation, phone1, phone2, email FROM contacts")
result = self.cur.fetchall()
#Writing results into tempfile
source_file_name.write("Stampa Elenco Contatti\n")
for element in result:
source_file_name.write(str(element[0]) + "|" + str(element[1]) + "|" + str(element[2]) + "|" + str(element[3]) + "|" + str(element[4]) + "|" + str(element[5]) + "|" + \
str(element[6]) + "|" + str(element[7]) + "|" + str(element[8]) + "|" + str(element[9]) + "|" + str(element[10]) + "|" + str(element[11]) + "\n")
#TODO: Before exiting printing function you MUST:
# 1. filename.close()
# 2. exit to main() function
source_file_name.close()
try:
os.startfile(source_file_name,"open")
except Exception as generic_error:
print("Error while opening tempfile. Error:" + str(generic_error))
finally:
main()
Честно говоря, я не понимаю, что означает эта ошибка, в моих предыдущих фрагментах кода я всегда обрабатывал текстовые файлы безпроблемы, но я понимаю, что на этот раз все по-другому, потому что я выбираю свой поток из базы данных. Есть идеи как это исправить? Заранее спасибо, и извините за мой английский ...