linux下python脚本文件的执行与编码解析

一、

先将终端所在路径切换到python脚本文件的目录下

然后给脚本文件运行权限,一般755就OK,如果完全是自己的私人电脑,也不做服务器什么的,给777的权限问题也不大(具体权限含义参考chmod指令的介绍,就不赘述了):
chmod 755 ./*.py
然后执行。
如果在脚本内容的开头已经给出了类似于如下的注释:
#!/usr/bin/env python
那就可以直接在终端里运行:
./*.py
如果没有这个注释
就在终端中执行:
python ./*.py
如果是有图形界面的脚本
在前面的chmod之后,直接双击(KDE桌面是单击)文件来执行即可
追问
如果把文件1.py放到tmp文件夹中,如何运行?命令能写具体一点吗?脚本内容的开头有:#!/usr/bin/env python
回答
那就直接运行(假设你的文件名是A.py):
/tmp/A.py
或先切换目录,再运行:
cd /tmp
./A.py
如果该文件需要修改跟用户权限下的一些文件或目录
就将自身提升为跟用户权限:
sudo /tmp/A.py
或直接将自身提升为跟用户再运行:
su root
/tmp/A.py
另:Ubuntu等发行版默认不支持su root的操作,只能用sudo
追问
把A.py文件放入tmp文件夹中 
执行sudo /tmp/A.py 出现如下提示sudo:/tmp/A.py:command not found
执行/tmp/A.py    出现如下提示:-bash:/tmp/A.py:permission denied
使用cd /tmp 然后执行出现提示和上面一样,不知道是怎么回事,是我哪里弄错了?
回答
这样的话,我知道的一般有两种情况:
1.
文件开头没有执行注释:#!/usr/bin/env python
但你之前说有这一行
2.
就是没用chmod
上面说了,最开始要给脚本设置权限
如果电脑是你一个人用,那就chmod 777 /tmp/A.py就好了
如果还有别人用,就给个chmod 755 /tmp/A.py好了
这个chmod和后面提到的哪个sudo两个都是关于权限的命令,但是是不同的,互相也没什么关系

简单点说:chmod的权限是决定谁有权去碰这个脚本(读、写、执行),而sudo的权限决定的是这个脚本有权去碰谁。

二、

脚本语言的第一行,目的就是指出,你想要你的这个文件中的代码用什么可执行程序去运行它,就这么简单
#!/usr/bin/Python是告诉操作系统执行这个脚本的时候,调用/usr/bin下的python解释器;
#!/usr/bin/env python这种用法是为了防止操作系统用户没有将python装在默认的/usr/bin路径里。当系统看到这一行的时候,首先会到env设置里查找python的安装路径,再调用对应路径下的解释器程序完成操作。
#!/usr/bin/python相当于写死了python路径;
#!/usr/bin/env python会去环境设置寻找python目录,推荐这种写法

三、

系统默认字符编码为ASCII编码,所以当脚本中包含中文字符时要在#!/usr/bin/env python下加一行

# -*- coding: utf-8 -*-





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值