python-3.x - 我在读取 csv 文件并将单词插入 pyqt 的文本框中时遇到问题。单词没有像应有的那样打印到文本框中
问题描述
这是需要的模块。
import sys
import csv
from csv import *
from PyQt4 import QtCore, QtGui, uic
qtCreatorFile = "Inquiry.ui" # Enter file here.
Ui_MainWindow, QtBaseClass = uic.loadUiType(qtCreatorFile)
class MyApp(QtGui.QMainWindow, Ui_MainWindow):
Hebrew = {'a':1,'b':2,'c':3,'d':4,'e':5,'f':6,'g':7,'h':8,'i':9,\
'j':600,'k':10,'l':20,'m':30,'n':40,'o':50,'p':60,'q':70,'r':80,\
's':90,'t':100,'u':200,'v':700,'w':900,'x':300,'y':400,'z':500}
其他一些有助于重现问题的重要代码:
创建图形用户界面:
def __init__(self):
"Create UI"
QtGui.QMainWindow.__init__(self)
Ui_MainWindow.__init__(self)
self.setupUi(self)
self.btnCalculate.clicked.connect(self.Calculate)
def Calculate(self):
事件:
try:
Event = str(self.txtInquiry)
except TypeError:
pass
Word 文本文件路径:
y = 'C:/Users/Jacob-C/Documents/words_alpha.txt'
这些是使用的功能。
根据使用的数字系统中的键映射计算每个单词的值。
def gematric_value(x, L):
value = 0
for v in x.lower():
try:
value = value + L[v]
except KeyError:
pass
return value
模函数大量用于整数减少。
def MOD_CALC(x, y):
return (x % y)
这个函数接受一个数字,整数减少它。
def Check_Value(x):
if x > 9 and MOD_CALC(x, 9) == 0:
return (MOD_CALC(x, 9) + 9)
elif x > 9 and MOD_CALC(x, 9) != 0:
return MOD_CALC(x, 9)
else:
return x
这是不将单词插入纯文本框中的功能。
def Gematria(f, Hebrew, EN):
打开文本文件并将其转换为 csv 文件。然后读取文本文件中的每个单词并比较单词的数字值和事件的数字值。如果它们匹配,则将单词插入到 qt 表单上的纯文本框中。此功能不符合预期。相反,它不会在纯文本框中插入任何内容。
with open(f, 'r', newline='') as input_file_name:
input_file = csv.reader(input_file_name, delimiter=' ', quotechar='|')
for word in input_file:
GV = Check_Value(gematric_value(word, L))
if GV == EN:
self.txtWords.insertPlainText(", ".join(word))
整数减少事件编号
HN = gematric_value(Event, Hebrew) # Hebrew Event Number
MOD_HN = Check_Value(HN) # Reduced Hebrew Event Number
电话:
Gematria(y, Hebrew, MOD_HN)
if __name__ == "__main__":
app = QtGui.QApplication(sys.argv)
window = MyApp()
window.show()
sys.exit(app.exec_())
Traceback (most recent call last):
File "C:\Users\Jacob-C\Documents\Numerology_Predict.py", line 146, in <module>
Launch_Program()
File "C:\Users\Jacob-C\Documents\Numerology_Predict.py", line 144, in Launch_Program
Gematria(y, L, EN)
File "C:\Users\Jacob-C\Documents\Numerology_Predict.py", line 116, in Gematria
GV = Check_Value(Event_Number(word, L))
File "C:\Users\Jacob-C\Documents\Numerology_Predict.py", line 95, in Event_Number
for e in E.lower():
AttributeError: 'list' object has no attribute 'lower'
解决方案
我的答案:
def Gematria(f, L, EN):
with open(f, 'r') as input_file:
for word in input_file:
GV = Check_Value(Event_Number(word, L))
if GV == EN:
print(word)
推荐阅读
- javascript - 将 rTab 从 bs3 转换为 bs5
- android - 应用程序的数据在运行时变得清晰,应用程序再次在模拟器上重新安装,任何人都可以提出可能是什么问题
- java - 如何通过 SpringBoot 从 Keycloak 获取访问令牌?
- r - R包,如何使用封装的DATA
- r - 如何获得大量用户的 Twitter 好友:“get_friends”循环在 R 中无法连续工作
- amazon-web-services - 有没有办法在 DMS 中重新启动复制任务而不重新创建任务本身?
- java - 功能接口单元测试
- mysql - 创建“。”时出错:persistentvolumeclaims“wp-pv-claim”被禁止:超出配额
- javascript - 搜索功能不适用于问号
- r - 如何从 r 中的 api 获取数据?