【问题标题】:Opening a CSV from a Different Directory Python从不同的目录 Python 打开 CSV
【发布时间】:2016-02-24 18:49:29
【问题描述】:

我一直在做一个需要导入 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'))

我也多次更改路径,先删除第一个 /,然后删除 ~,然后再删除 /,但每次都收到错误消息。然后我通过导入操作系统尝试了几个人建议的另一种方法:

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 很陌生,所以如果没有额外的清晰/解释,我可能很难理解。提前致谢!

【问题讨论】:

    标签: python csv directory


    【解决方案1】:

    波浪号告诉我这是主文件夹(例如,我的 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
    

    【讨论】:

    • Hai Vu 非常感谢,这似乎解决了我的问题。我使用了您的第一个建议,没有更多错误消息!
    猜你喜欢
    • 1970-01-01
    • 2018-05-02
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2021-10-24
    • 1970-01-01
    相关资源
    最近更新 更多