我正在处理一个函数,我需要接受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
答案 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