簡體   English   中英

在python中讀取csv文件並創建數據庫

[英]Reading a csv file in python and creating database

我正在使用需要接受CSV文件名作為字符串,打開並讀取它,創建數據庫然后返回數據庫的函數。 到目前為止,我進行的嘗試似乎具有正確的邏輯,但是卻給我錯誤“沒有此類文件或目錄'filename.csv'。我正在讀取的文件稱為file0.csv,file1.csv等。我我將在下面的代碼中包含其中一個示例。有人對如何解決此問題有任何建議嗎?

編輯:我意識到我下面包含的是數據庫的示例。 顯然,文件的第一行是標題行,而我現在擁有的代碼正在讀取不應包含的標題行。 這是下面的更新代碼

碼:

def read_file(filename):
    thefile = open(filename)
    data = []
    for line in thefile: 
        data.append(line)
    thefile.close()

    return data



    Example database:

{'Leonardo  da  Vinci': [('Mona Lisa', 1503,    
76.8, 53.0, 'oil paint', 'France'), ('The   
Last Supper', 1495, 460.0, 880.0, 'tempera',    
'Italy')]}

讓我們看一下代碼的前兩行:

def read_file(filename):
    thefile = open('filename.csv')

我推測,由於您希望能夠使用此代碼處理多個文件,因此您希望能夠調用read_file代替各種filename來代替filename 正確?

行,則在代碼的一個缺陷是, 文件名中的第一行是一個可變的但“filename.csv”是文字。 這意味着無論您在第一行中為文件名添加什么內容,都不會更改文字。 為此,第二行必須是例如

thefile = open ('%s.csv' % filename, 'r')

這會將文件名變量中的內容替換為%s,並執行您似乎想要的操作。

大多數受訪者都在抱怨:您的腳本(即Python代碼)可能位於一個光盤文件夾或目錄中,但您要處理的文件可能位於另一個文件夾或目錄中。 當您在不告訴腳本在哪里尋找文件的情況下運行腳本時,將假定您的意思是在運行腳本的文件夾中。 在游戲的階段,最簡單的方法是將Python腳本及其需要的文件全部放在同一文件夾中,然后在同一文件夾中運行。

也許您想要這樣的東西? 它會打開您的文件(假設找到正確的位置),累積其行並返回文件中的行集。

def read_file(filename):
    thefile = open('file0.csv', 'r')
    lines = []
    for line in thefile: 
        lines.append(line)
    thefile.close()

    return lines

暫無
暫無

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

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