在python中读取csv文件并创建数据库

时间:2016-11-12 19:49:46

标签: python database file python-3.x csv

我正在处理一个函数,我需要接受CSV文件名作为字符串,打开并读取它,创建数据库,然后返回数据库。到目前为止我的尝试似乎有正确的逻辑,但它给了我错误"没有这样的文件或目录' filename.csv'。我正在阅读的文件称为file0.csv,file1.csv等。我将在下面的代码中包含其中一个文件的示例。有没有人对如何解决这个问题有任何建议?感谢

编辑:我意识到我下面包含的是数据库的一个例子。显然,文件的第一行是标题行,而我现在的代码是在不应该读取标题行的时候。以下是

的更新代码

代码:

def test_nfs3_stuff(nfs3_tmpdir):
    ... test NFS3 functionality

def test_nfs4_stuff(nfs4_tmpdir):
    ... test NFS4 functionality

2 个答案:

答案 0 :(得分:1)

让我们看一下代码的前两行:

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

我猜想,因为您希望能够使用此代码处理多个文件,您希望能够调用 read_file 替换各种文件名来代替 filename 。正确的吗?

好的,那么代码中的一个缺陷就是第一行中的文件名是一个变量,但' filename.csv' 是一个文字。这意味着无论你在第一行输入 filename ,它都不会改变文字。要做到这一点,第二行必须是,例如,

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

这会将文件名变量中的内容替换为%s 并执行您想要的操作。

大多数受访者都在喋喋不休:您的脚本(即Python代码)可能位于一个光盘文件夹或目录中,但您要处理的文件可能位于不同的文件夹或目录中。当您运行脚本而不告诉它在哪里查找文件时,它会假定您指的是在它运行的文件夹中。在游戏阶段,最简单的方法是将Python脚本及其所需的文件放在同一个文件夹中,然后在同一个文件夹中运行。

答案 1 :(得分:0)

也许你想要这样的东西?它会打开您的文件(只要您找到正确的位置),累积其行并返回文件中的行集。

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

    return lines