我是Python新手,遇到了一个奇怪的问题。我正致力于自动生成图表。它是由一台设备生成的csv文件,每次都是相同的格式,相同的文件名。
我将其设置如下:
在找到之前未在我的机器上打开的文件之前,一切都很好。 当文件应该开始读取时,我收到" _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)