您的位置:首页 > 编程语言 > Python开发

os.path.dirname(__file__)和abspath()的用法

2018-01-12 15:43 281 查看

我在E:\system_floder\Desktop下写了个test.py文件:

import os
print(os.path.dirname(__ file __))

然后在E:\system_floder\Desktop目录下运行这个py文件,输出为空:
E:\system_floder\Desktop>python test.py

接着:
E:\system_floder\Desktop>python e:\system_floder\Desktop\test.py

输出为:
e:\system_floder\Desktop

那么可以总结,如果这个文件在绝对路径下被执行,那么将显示文件之前的路径。

如果这个文件在相对路径下被执行,那么将输出空

那么看个最近我在爬虫中执行main文件时用到的实际例子:

main.py:
import os,sys
from scrapy.cmdline import execute

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy", "crawl", "BaiDu"])

这个main文件的路径为:
E:/pyWorkspace/Scrapy/sv2_scrapy/tutorial/tutorial/main.py


那么
os.path.dirname(os.path.abspath(__file__)
 这里首先得到文件所处的绝对路径,然后得到前面的目录
E:\pyWorkspace\Scrapy\sv2_scrapy\tutorial\tutorial

这样就可以把main所处的文件路径加入到系统路径当中了。


我在E:\system_floder\Desktop下写了个test.py文件:

import os
print(os.path.dirname(__ file __))

然后在E:\system_floder\Desktop目录下运行这个py文件,输出为空:
E:\system_floder\Desktop>python test.py

接着:
E:\system_floder\Desktop>python e:\system_floder\Desktop\test.py

输出为:
e:\system_floder\Desktop

那么可以总结,如果这个文件在绝对路径下被执行,那么将显示文件之前的路径。

如果这个文件在相对路径下被执行,那么将输出空

那么看个最近我在爬虫中执行main文件时用到的实际例子:

main.py:
import os,sys
from scrapy.cmdline import execute

sys.path.append(os.path.dirname(os.path.abspath(__file__)))
execute(["scrapy", "crawl", "BaiDu"])

这个main文件的路径为:
E:/pyWorkspace/Scrapy/sv2_scrapy/tutorial/tutorial/main.py


那么
os.path.dirname(os.path.abspath(__file__)
 这里首先得到文件所处的绝对路径,然后得到前面的目录
E:\pyWorkspace\Scrapy\sv2_scrapy\tutorial\tutorial

这样就可以把main所处的文件路径加入到系统路径当中了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python os