Python中的csv.reader模块首先在标题

时间:2017-08-24 17:08:18

标签: python python-3.x csv

我是Python新手,遇到了一个奇怪的问题。我正致力于自动生成图表。它是由一台设备生成的csv文件,每次都是相同的格式,相同的文件名。

我将其设置如下:

  • 用户选择文件位置并保存
  • 读取并存储X和Y变量以供日后使用
  • 继续制作折线图(省略 - 例如我只是打印)

在找到之前未在我的机器上打开的文件之前,一切都很好。 当文件应该开始读取时,我收到" _csv.error行包含空字节" 错误。标题行很好,但没有数据。我通过在PyCharm中打开csv来仔细检查文件,果然,没有数据。我在excel打开,有数据。如果我在没有保存的情况下关闭,则通过此脚本仍然没有可读数据。如果我保存然后关闭,突然它会起作用。

我有理由在读取之前先打开文件吗?我可以使用更好的模块吗?就像我说的,我是新手,csv.reader是我迄今为止一直在玩的。好吧,我尝试了其中一个excel,但这是一个悲剧LOL我可以肯定使这项工作,但对于最终用户,它更好地搜索文件。

使用的文件是一个4列的csv文件,其中我使用第2列(实数)和第4列(事件时间)。

import csv

import tkinter as tk
from tkinter import filedialog

from datetime import datetime

# Open dialogue to get desired folder destination
dialogue_prompt = "Choose the location of your file: \nIt will save as an image to the same directory."
print(dialogue_prompt)

root = tk.Tk()
root.withdraw()

file_path = filedialog.askdirectory()

# Get Variable for Chart Title and Save Name
prompt = "\n\nEnter the title name for this chart and press Enter."
prompt += "\nNote: The chart title will also be the filename"
prompt += "\n --> "
current_chart_title = input(prompt)



# Open csv file and get Pressure and Time from RUNDATA
filename = file_path + '/' + 'RUNDATA.csv'
with open(filename) as f:
    reader = csv.reader(f)
    header_row = next(reader)

    # create pressure and time lists
    y_val, x_val_time = [], []
    for row in reader:
        y_val.append(row[1])

        x_val = datetime.strptime(row[3], '%H:%M:%S')
        x_val_time.append(x_val)

print(y_val,x_val_time)

0 个答案:

没有答案