在当前目录的上一级创建数据库文件夹。

3
在PHP中,要引用上一级目录,我会使用'../../test';在Python中应该怎么做?
在这种情况下,我正在使用SQLite来创建一个数据库文件。
import sqlite3
conn = sqlite3.connect('../data/test.db')

然而,它显示“无法打开数据库文件”,我认为这是一个目录访问错误。在Python中如何引用上级目录?

2个回答

6
你可以尝试这个方法:
conn = sqlite3.connect(os.path.realpath('../data/test.db'))

喜欢这个解决方案 - 谢谢您! - Oliver Kucharzewski

2
你需要使用 os.path.abspathos.path.dirname 找到数据库文件的绝对路径。然后将该绝对路径传递给 sqlite3.connect
首先,内部的 os.path.dirname 将提供当前文件所在的目录,第二个 os.path.dirname 将提供当前文件所在目录的父目录。
from os.path import join, dirname, abspath
db_path = join(dirname(dirname(abspath(__file__))), 'data/test.db')
sqlite3.connect(db_path)

请使用 from . import . 来缩短代码,例如 from os.path import dirname, abspath; dirname(dirname(abspath(__file__))) - JRazor
请不要吓跑我,让我远离Python! - Oliver Kucharzewski
@OliverK 在Python中明确指定路径是正常的做法。 - JRazor
1
两种都是很好的解决方案,但我认为@gview的更简单。谢谢! - Oliver Kucharzewski

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接