在不同目录中打开CSV文件 Python

2 投票
1 回答
26440 浏览
提问于 2025-05-10 20:39

我正在做一个项目,需要导入csv文件。之前这些csv文件都放在同一个工作目录里。现在项目变得越来越大,为了安全和组织上的考虑,我更希望把它们放在一个不同的目录里。

我看了一些其他人问的类似问题,但我不知道怎么把那些方法应用到我的代码上。每次尝试后,我都收到了同样的错误信息,主要是:

IOError: [Errno 2] No such file or directory:

我最开始的尝试大概是这样的:

import csv      # Import the csv module
import MySQLdb  # Import MySQLdb module

def connect():

    login   = csv.reader(file('/~/Projects/bmm_private/login_test.txt'))

我多次修改了路径,比如先去掉第一个/,然后去掉~,再加上/,但每次都还是出现错误信息。后来我又尝试了其他人推荐的方法,导入了os模块:

import os
import csv      # Import the csv module
import MySQLdb  # Import MySQLdb module

def connect():

    path    = r'F:\Projects\bmm_private\login_test.txt'
    f       = os.path.normpath(path)
    login   = csv.reader(file(f)) 

但我又收到了错误信息。

如果有人能帮我一下,我会非常感激。如果你能在回答中使用真实的路径(~/Projects/bmm_private/login_test.txt),这样我就能更清楚地知道我哪里出错了。

我对python还很陌生,所以没有额外的解释我可能会很难理解。提前谢谢你们!

相关文章:

  • 暂无相关问题
暂无标签

1 个回答

8

波浪号(~)表示这是用户的主文件夹,比如在我的Windows系统上是C:\Users\<用户名>,在我的Mac上是/Users/<用户名>。如果你想要展开这个用户路径,可以使用os.path.expanduser这个方法:

full_path = os.path.expanduser('~/Projects/bmm_private/login_test.txt')
# Now you can open it

另一种方法是根据你当前脚本的位置来查找文件。比如,如果你的脚本在~/Projects/my_scripts这个文件夹里,那么:

script_dir = os.path.dirname(__file__)  # Script directory
full_path = os.path.join(script_dir, '../bmm_private/login_test.txt')
# Now use full_path

撰写回答