控制台和终端的pycharm路径差异

时间:2017-10-24 14:10:47

标签: python path pycharm

所以这是我的项目结构:

import os.path
import pandas as pd

fileDir = os.path.dirname(os.path.abspath('__file__'))
filename = os.path.join(fileDir, '../../data/external/data.csv')
df = pd.read_csv(filename)

如果我在pycharm中使用" run"来运行它,那么在终端中没有问题。我喜欢在pycharm中与python控制台交互式工作,但是找不到路径,因为它在工作目录"项目文件夹"中执行。因此,当我删除部分" ../.."它也适用于python控制台。我已将src文件夹和子文件夹标记为源根,将数据文件夹和子文件夹标记为资源根。在pycharm的python控制台的设置中,我勾选了#34;将内容/源根添加到PYTHONPATH"。

{{1}}

如何在控制台和终端中实现单向工作?

1 个答案:

答案 0 :(得分:0)

@Peterhack,

在同一台机器上使用跨不同python环境的路径可能很棘手,甚至在不同的OS(例如Windows)上更糟。您的第一行使用python路径抽象,因此让我们继续该方向来查找数据目录。为了清楚起见,下面是一些详细的示例:

import os.path
import pandas as pd

fileDir = os.path.dirname(os.path.abspath('__file__'))
print(fileDir)
# /Users/starver/code/makara/stackoverflow/python/46912753/src/data

rootDir = os.path.dirname(os.path.dirname(fileDir))
print(rootDir)
# /Users/starver/code/makara/stackoverflow/python/46912753

dataDir = os.path.join(rootDir, 'data', 'external')
print(dataDir)
#/Users/starver/code/makara/stackoverflow/python/46912753/data/external

dataFile = os.path.join(dataDir, 'data.csv')
print(dataFile)
# /Users/starver/code/makara/stackoverflow/python/46912753/data/external/data.csv

df = pd.read_csv(dataFile)