python怎么获得当前程序的文件名称?
1、我们要用到的其实是sys模块内的一个列表变量
即sys.argv
这其实是一个main方法的入口参数,如果小伙伴学过C的话,就知道在C中,main函数是这样写的:
int main(int argc,char * argv[])
{return 0;}
这个argc值得就是程序的参数个数,而argv则是程序的参数
不过在python中没有argc,我们要想获得参数个数,只能通过len函数来获得argv的成员数,然后得到参数个数
那么我们想要获得程序的文件名的话,即sys.argv[0],第一个参数就是我们的文件名

2、还有一种方法,就是使用python的内置字符串变量——__file__
这个我们可以直接print打印。
print(__file__)

3、要注意的一点是,不管是使用sys.argv[0]还是__file__都是一样,我们需要以py文件代码形式运行才能有我们想要的效果。
我们在python shell上打印sys.argv[0]为空,而打印__file__则出错。
因为此时我们根本不是以文件形式在解释,而是以shell方式运行语句,没有文件之说

4、以上两种方式都是获得文件的绝对路径,如果我们只想获得文件名,单纯的文件名,如果不做字符串分割处理,还有别的办法可以直接获得文件名吗?
有,那就是os模块内的path.basename方法。
我们先用刚刚说的那两种方法的任意一种获得我们文件的绝对路径,然后再使用os.path.basename方法。
代码和运行结果如图

5、偷偷的告诉小伙伴:其实我们还可以用文件名来获得绝对路径,大部分用途是获得当前目录的绝对路径。
那就是os模块内的path.abspath()方法
看以下几个代码就知道了。
name = os.path.basename(__file__)
print(os.path.abspath(name))
print(os.path.abspath(""))
#传进空字符串就获得当前目录的绝对路径哦

1、怎么关注?
在经验的右上角小编头像旁边点击关注,如图。

2、怎么点赞?
请在经验左侧点赞,如图。

3、怎么投票?
在经验的下方点击投票,如图。

4、如果觉得小编写的还不错,可以动动鼠标把它分享给您的朋友。
如何分享,鼠标移动到右下角第一个按钮上,在弹出的选项中进行分享,如图。
不尽感激。
