在python中读取文件时遇到问题

时间:2018-11-20 11:10:25

标签: python

我正在尝试读取文件,但由于某种原因它无法正常工作,由于我不习惯使用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:时退出

2 个答案:

答案 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()