簡體   English   中英

加載 csv 文件 - SyntaxError: invalid syntax (python 3.8)

[英]loading csv files - SyntaxError: invalid syntax (python 3.8)

我正在做一個項目,該項目需要我在代碼的兩個位置添加 csv 文件。 我在stackoverflow上看到了類似的問題。 但他們的問題是由於舊的 python 版本 2.5。 但是我的 python 版本是 3.8。

import csv

from tensorflow.keras.datasets import mnist
import numpy as np

def load_az_dataset("C:\A_Z_Handwritten_Data\A_Z_Handwritten_Data.csv"):
    # initialize the list of data and labels
    data = []
    labels = []

    # loop over the rows of the A-Z handwritten digit dataset
    for row in open("C:\A_Z_Handwritten_Data\A_Z_Handwritten_Data.csv"):
        # parse the label and image from the row
        row = row.split(",")
        label = int(row[0])
        image = np.array([int(x) for x in row[1:]], dtype="uint8")

        # images are represented as single channel (grayscale) images
        # that are 28x28=784 pixels -- we need to take this flattened
        # 784-d list of numbers and repshape them into a 28x28 matrix
        image = image.reshape((28, 28))

        # update the list of data and labels
        data.append(image)
        labels.append(label)

    # convert the data and labels to NumPy arrays
    data = np.array(data, dtype="float32")
    labels = np.array(labels, dtype="int")

    # return a 2-tuple of the A-Z data and labels
    return (data, labels)

它顯示了這個語法錯誤在此處輸入圖像描述

語法錯誤是因為您在load_az_dataset的方法聲明中傳遞了文字字符串。

您需要將 function 的參數定義為:

def load_az_dataset(fileName):

此外,如果您想將該文件添加為參數的默認值,請使用:

def load_az_dataset(fileName="C:\\A_Z_Handwritten_Data\\A_Z_Handwritten_Data.csv"):

此外,與問題無關,您需要用另一個\ \

嘗試:

open("C:\\A_Z_Handwritten_Data\\A_Z_Handwritten_Data.csv")

語法錯誤是因為文件路徑在 function 定義中的參數列表中。 這是罪魁禍首:

def load_az_dataset("C:\A_Z_Handwritten_Data\A_Z_Handwritten_Data.csv"):

function 定義中沒有列出任何參數。 你只有一個文字字符串。

此外,正如其他人所提到的,您還應該使用原始字符串: r"..."或 escaping 反斜杠。

最后,您應該使用with open(file_path) as f:模式來打開您的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM