我正在尝试读取文件,但由于某种原因它无法正常工作,由于我不习惯使用python,因此在诊断问题时遇到了一些麻烦。
我使用以下代码读取文件
with open(self.lineEdit_2.text(), 'r') as csvfile:
reader = csv.reader(csvfile, delimiter=',')
idList = []
idExist = false
for row in reader:
print(row[1])
for i in len(idList):
if row[1] == idList[i]:
idExist = true
break
else:
idExist = false
if not idExist:
idList.append(row[1])
该文件名为can_data.txt,self.lineEdit_2.text()
将目标返回到该文件。该文件具有以下结构:
1542208616,0x7DF,8,01 03 55 55 55 55 55 55
1542208616,0x7E9,8,02 43 00 00 00 00 00 00
1542208616,0x7E8,8,02 43 00 00 00 00 00 00
1542208616,0x7DF,8,01 07 55 55 55 55 55 55
1542208616,0x7E9,8,02 47 00 00 00 00 00 00
1542208616,0x7E8,8,02 47 00 00 00 00 00 00
目的是在第1列中列出文件内的不同ID。
在尝试调试它时,到达row in reader:
时退出
答案 0 :(得分:0)
好吧,首先:修复缩进!在with ...:
之后,应该始终有一个缩进的块。
其次,self.lineEdit_2.text()返回什么? open()
方法期望文件的路径是它的第一个参数,而不是您要读取的文本...(https://docs.python.org/3/library/functions.html#open)
我的猜测是,您根本不需要第一行,但是这样的事情可能会起作用:
reader = csv.reader(self.lineEdit_2.text().split('\n'), delimiter=',')
for row in reader:
...
答案 1 :(得分:0)
您对用来读取文件的软件包有限制吗? 如果没有,为什么不尝试熊猫?
据我对脚本的了解,第二列包含ID,您将看到数据中出现的所有不同ID的列表。
因此,您可以尝试一下(我的猜测是,它将更加有效):
import pandas as pd
df = pd.read_table(self.lineEdit_2.text() , sep=',', names=['c0', 'id', 'c2', 'c3', 'c4', 'c5', 'c6'])
unique_ids = df['id'].unique()