вы получаете кортеж "выбранный файл" и "примененный фильтр".
пример минимального кода:
from PyQt5.Qt import *
app = QApplication([])
print(QFileDialog.getSaveFileName())
выбранный "некоторый файл": ('C:/scratches/scratch.py', 'All Files (*)')
Но когда вы что-то не выбираете и не отменяете диалоговое окно, две строки остаются пустыми: ('', '')
.
Поскольку кортеж с двумя строками - true
, вы пытаетесь open()
файлс этим, что приводит к ошибке.
Решение:
распакуйте кортеж в две переменные или используйте индекс [0], как показано ниже:
filename, filter = QFileDialog.getSaveFileName(self, "", "cars.xlsx","Excel(.xlsx)")
if filename:
openFile = open(filename, 'r').read()
...