如何获取当前文件的目录路径? 我试着:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
但我想:
'C:\\python27\\'
如何获取当前文件的目录路径? 我试着:
>>> os.path.abspath(__file__)
'C:\\python27\\test.py'
但我想:
'C:\\python27\\'
当前回答
IPython有一个神奇的命令%pwd来获取当前的工作目录。它可以在以下方面使用:
from IPython.terminal.embed import InteractiveShellEmbed
ip_shell = InteractiveShellEmbed()
present_working_directory = ip_shell.magic("%pwd")
在IPython上Jupyter Notebook %pwd可以直接使用如下:
present_working_directory = %pwd
其他回答
我做了一个函数,当在CGI中运行IIS下的python时,为了获得当前文件夹:
import os
def getLocalFolder():
path=str(os.path.dirname(os.path.abspath(__file__))).split(os.sep)
return path[len(path)-1]
也适用于__file__不可用的情况(jupyter笔记本)
import sys
from pathlib import Path
path_file = Path(sys.path[0])
print(path_file)
还使用了pathlib,这是python 3中处理路径的面向对象的方式。
从Python 3开始,推荐使用pathlib中的Path:
from pathlib import Path
print("File Path:", Path(__file__).absolute())
print("Directory Path:", Path().absolute()) # Directory of current working directory, not __file__
注意:如果使用Jupyter Notebook, __file__不会返回预期值,因此必须使用Path().absolute()。
Python 2和3
你还可以简单地做:
from os import sep
print(__file__.rsplit(sep, 1)[0] + sep)
输出如下:
C:\my_folder\sub_folder\
IPython有一个神奇的命令%pwd来获取当前的工作目录。它可以在以下方面使用:
from IPython.terminal.embed import InteractiveShellEmbed
ip_shell = InteractiveShellEmbed()
present_working_directory = ip_shell.magic("%pwd")
在IPython上Jupyter Notebook %pwd可以直接使用如下:
present_working_directory = %pwd