当我单击打开按钮时,GUI会给我选择文件的选项。如果我关闭文件选择器,则会出现错误。如何避免这种情况发生?
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QWidget, QPushButton
class Window(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
self.Open = QPushButton('Open')
self.Open.clicked.connect(self.open)
self.show()
layout = QGridLayout(centralWidget)
layout.addWidget(self.Open)
def open(self):
name = QtWidgets.QFileDialog.getOpenFileName(self, 'Select File')
file = open(name[0], 'r')
lines = file.readlines()
print(lines)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())
答案 0 :(得分:0)
您必须验证文件名不是空字符串。
def open(self):
filename, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Select File')
if filename:
with open(filename, 'r') as file:
lines = file.readlines()
print(lines)
答案 1 :(得分:0)
检查name
是否有效
import sys
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QGridLayout, QWidget, QPushButton
class Window(QtWidgets.QMainWindow):
def __init__(self):
super().__init__()
centralWidget = QWidget()
self.setCentralWidget(centralWidget)
self.Open = QPushButton('Open')
self.Open.clicked.connect(self.open)
self.show()
layout = QGridLayout(centralWidget)
layout.addWidget(self.Open)
def open(self):
name, _ = QtWidgets.QFileDialog.getOpenFileName(self, 'Select File')
if name: # <---
with open(name) as file:
lines = file.readlines()
print(*lines, sep='\n')
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
window = Window()
sys.exit(app.exec_())