modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
datapath = os.path.join(modpath, '../../datas/orcl-1995-2014.txt')
我真的是python新手...请问我应该理解以下代码吗?
modpath = os.path.dirname(os.path.abspath(sys.argv[0]))
是否以绝对路径格式将当前位置的文件夹名称保存在变量modpath中?那是不是指向当前位置的确切路径,而是它的文件夹?
next,datapath = os.path.join(modpath, '../../datas/orcl-1995-2014.txt')
是将保存在modpath中的路径的连接字符串与后面的字符串一起保存?
答案 0 :(得分:0)
os.path.abspath(sys.argv [0])将返回绝对路径。 os.path.dirname(path)函数返回路径的开头。
modpath 将是路径的开头。
os.path.join(path1,path2)函数将连接两个目录路径。
希望这会有所帮助!
答案 1 :(得分:0)
os.path.abspath(path)
返回路径名路径的标准化绝对化版本。
您使用过:
os.path.abspath(sys.argv[0])
示例:
>>> print(os.path.abspath(sys.argv[0]))
/usr/bin/ipython
等效的Pathlib:
>>> pathlib.Path(sys.argv[0]).resolve()
/usr/bin/ipython
os.path.dirname(path)
返回目录path
。
您使用过:
os.path.dirname(os.path.abspath(sys.argv[0]))
示例:
>>> os.path.dirname('/usr/bin/ipython')
/usr/bin
等效的Pathlib:
import pathlib
path = pathlib.Path(sys.argv[0])
modpath = path.parent
os.path.join(path1, path2, ...)
加入一个或多个路径组件。
您使用过:
os.path.join(modpath, '../../datas/orcl-1995-2014.txt')
示例:
>>> print(os.path.join('/etc', 'dir1', '..', 'dir2', 'dir3/dir4'))
/etc/dir1/../dir2/dir3/dir4
等效的Pathlib:
datapath = modpath.parent.parent / 'datas' / 'orcl-1995-2014.txt'
sys.argv[0]
-这是您的Python脚本的路径。假设它是/usr/bin/python
。os.path.abspath
上应用/usr/bin/python
-您可以在解释器中尝试。结果为/usr/bin/python
,因为它已经是绝对路径了。os.path.dirname
)上应用/usr/bin/python
。结果是目录名usr/bin/python', which is
/ usr / bin . Save it in
modpath`。/usr/bin/
将../../datas/orcl-1995-2014.txt
与modpath(os.path.join
)串联-产生/usr/bin/../../datas/orcl-1995-2014.txt
。将其保存在datapath
上。