从不同的目录Python打开CSV

时间:2015-11-22 17:36:47

标签: python csv directory

我一直在做一个需要导入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 个答案:

答案 0 :(得分:4)

代字号告诉我这是主文件夹(例如我的Windows系统上的C:\Users\<username>或我Mac上的/Users/<username>。如果您要扩展用户,请使用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