关闭QFileDialog.getSaveFileName时出现问题。如果我选择取消而不继续保存文件,则程序将崩溃。
我知道该语句将始终为True,因为getSaveFileName()函数始终返回一个元组,我应该能够使用If函数来解决此问题,但是我对编程非常陌生,这让我很困惑。
任何帮助将不胜感激。
# Print List
CoOrdinates = ['CL', RoundedSOL_E_1, RoundedSOL_N_1, RoundedEOL_E_1, RoundedEOL_N_1]
Headers = ['Line Name', 'SOL_E', 'SOL_N', 'EOL_E', 'EOL_N']
print(Headers)
print(CoOrdinates)
save = QFileDialog.getSaveFileName(None, 'Save As', 'Line Plan.csv')
with open(save[0], 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(Headers)
writer.writerow(CoOrdinates)
答案 0 :(得分:1)
当您选择取消返回文件名的参数时,它是一个空字符串,因此您无法打开文件,因此会引发错误,因此必须添加验证:
CoOrdinates = ['CL', RoundedSOL_E_1, RoundedSOL_N_1, RoundedEOL_E_1, RoundedEOL_N_1]
Headers = ['Line Name', 'SOL_E', 'SOL_N', 'EOL_E', 'EOL_N']
print(Headers)
print(CoOrdinates)
filename, _ = QFileDialog.getSaveFileName(None, 'Save As', 'Line Plan.csv')
if filename:
with open(filename, 'a', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(Headers)
writer.writerow(CoOrdinates)