MoS*_*man 1 python csv directory
我一直在做一个需要导入 csv 文件的项目,以前 csv 文件一直在同一个工作目录中。现在该项目越来越大,因此出于安全和组织原因,我更愿意将它们保存在不同的目录中。
我查看了其他一些询问类似问题的问题,但我不知道如何将它们应用到我的代码中,因为每次尝试时我都会收到相同的错误消息:
IOError: [Errno 2] No such file or directory:
Run Code Online (Sandbox Code Playgroud)
我最初的尝试看起来像这样:
import csv # Import the csv module
import MySQLdb # Import MySQLdb module
def connect():
login = csv.reader(file('/~/Projects/bmm_private/login_test.txt'))
Run Code Online (Sandbox Code Playgroud)
我也多次更改了路径,方法是先删除 / 然后删除 ~ 然后再删除 / ,但每次都收到错误消息。然后我通过导入操作系统尝试了几个人建议的另一种方法:
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))
Run Code Online (Sandbox Code Playgroud)
但是我再次收到错误消息。
如果我可以要求您在您知道的任何答案中使用真实路径(~/Projects/bmm_private/login_test.txt),那么这里的任何帮助将不胜感激,因此我很清楚我在这里错过了什么。
我对python很陌生,所以如果没有额外的清晰度/解释,我可能很难理解。提前致谢!
波浪号告诉我这是主文件夹(例如C:\Users\<username>在我的 Windows 系统上,或/Users/<username>在我的 Mac 上)。如果要扩展用户,请使用os.path.expanduser调用:
full_path = os.path.expanduser('~/Projects/bmm_private/login_test.txt')
# Now you can open it
Run Code Online (Sandbox Code Playgroud)
另一种方法是寻找相对于您当前脚本的文件。例如,如果您的脚本在 中~/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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
15147 次 |
| 最近记录: |