繁体   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