我在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文件时用到的实际例子:
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文件时用到的实际例子:
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所处的文件路径加入到系统路径当中了。