回顾os和sys

import sys
sys.argv[0] = __file__

sys.argv是显示程序本身路径,路径用列表储存

['C:/应用软件/python类/python程序/day25/day25.py']

而经常用到的__file__显示的也是当前路径,是字符串

C:/应用软件/python类/python程序/day25/day25.py
<class 'str'>

所以要想两者相等,摘出来:sys.argv[0] = __file__ 

用print(sys.argv[0]  == __file__)判断一下,结果为真

True

 

对于os.path.abspath(path)则是规范化绝对路径

如__file__为

C:/应用软件/python类/python程序/day25/day25.py

而os.path.abspath(__file__)为

C:\应用软件\python类\python程序\day25\day25.py

是斜线('/'和'\')的不同,在写路径是,我们通常用上端向左的 反斜杠 '\',但是这种反斜杠写路径的时候,容易和python的\t,\n  重名,我们就在路径前加转译字符r,或者用  '\\'  取代  '\'(上文__file__写法)

print(r'C:\应用软件\python类\python程序\day25\day25.py')
print('C:\\应用软件\\python类\\python程序\\day25\\day25.py')


#结果显示
C:\应用软件\python类\python程序\day25\day25.py
C:\应用软件\python类\python程序\day25\day25.py

如果使用正斜杠(上文os.path.abspath写法),就不会这么麻烦,不会出现上述情况

print('C:/应用软件/python类/python程序/day25/day25.py')

#结果
C:/应用软件/python类/python程序/day25/day25.py

 

此外,正斜杠可以用作除法,就是我们的除号

print(10/3) 

#结果
3.3333333333333335

以下是'\t'空四格和'\n'换行的例子

print('')
print('\t啊')
print('\n啊')

#结果
啊
    啊

啊

 

os.path.split(__file__)可以把__file__的最后一个路径和之前的路径拆开,拆成一个元组

print(__file__)
print(os.path.split(__file__))

#结果
C:/应用软件/python类/python程序/day25/day25.py
('C:/应用软件/python类/python程序/day25', 'day25.py')

os.path.dirname和os.path.basename分别取元组的前后2个部分

print(os.path.dirname(__file__))
print(os.path.basename(__file__))

#结果
C:/应用软件/python类/python程序/day25
day25.py    

在开发规范中的,start作为启动文件,需要调用core中的scr主逻辑程序,这是就需要用到os模块了sys模块了

import sys,os
BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(BASE_DIR)

from core import src
if __name__ == '__main__':
    src.run

其中__name__在启动的文件中才会显示__main__

在被调用时,会显示被调用的文件名称

posted @ 2019-02-17 17:06  善良的大蝌蚪  阅读(158)  评论(0编辑  收藏  举报