0
点赞
收藏
分享

微信扫一扫

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式

直接运行

回忆上次内容

  • 我们把两个程序整合起来了
  • 可以持续输出当前时间
  • 每秒都更新

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_python

  • 但是我想在 shell 里面
  • 只输入文件名(./sleep.py)并回车
  • 就能不断输出时间
  • 可能吗?🤔

import time
while True:
print(time.asctime())
time.sleep(1)

尝试执行

  • 第 1 句 根本没有找到 ​​sleep.py​​

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_打开方式_02

  • 第 2 句 根据相对路径路径​​./​​ 找到了 ​​sleep.py​
  • 其中 . 代表的是当前目录
  • 在/home/shiyanlou/找到sleep.py
  • 但是没有权限
  • 要想办法观察到文件的可执行权限

观察权限

  • ls 是 列出(list)当前文件夹下的所有文件
  • -lh是参数
  • l(list)
  • 代表着使用的是一行行列表的方式
  • 这样可以查出文件详细信息
  • 大小
  • 读写权限
  • h(uman readable)
  • 指的是文件大小使用k、m这种
  • 更人类可读(human readable)的方式
  • 而不是采用字节的方式

#查询sleep.py
ls -lh sleep.py
#修改权限
chmod u+x sleep.py
#再次查询sleep.py
ls -lh sleep.py

  • ​sleep.py​
  • 指的是我们就是要查询的文件
  • ​​就是sleep.py​​
  • 查询之后什么结果呢?

ls结果

  • chmod u+x ​​sleep.py​
  • chmod
  • ​ch​​ange 改变
  • ​mod​​e 状态位 mode bits
  • u+x
  • ​u​​ser 当前用户组
  • ​+x​​增加 e​​x​​cute 的权限
  • ​sleep.py​
  • 被改变的文件名称

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_python_03

  • 注意下图红圈位置的变化
  • 从 - 到了 x
  • ​-​​ 就是没有 e​​x​​cute 的权限
  • ​x​​ 就是有了 e​​x​​cute 的权限
  • 这回能执行了么?

执行

  • 和刚才不一样了
  • 确实能执行了!哈哈!

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_python_04

  • 不过看起来不是按照python程序来执行的
  • 而是按照执行zsh批处理命令的方式执行的
  • 如何直接运行python程序呢?
  • 先搜索吧

进行搜索

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_当前路径_05

提示是这样的

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_python_06

  • 总共分 3 步:
  • 第 1 步 确认​​python3​​文件位置
  • ​python3​​ 好像在 ​​/usr/bin/​
  • ​python3​​ 就是​​sleep.py​​文件正确的打开方式
  • 第 2 步 编辑文件
  • 设置文件自动用​​/usr/bin/python3​​打开
  • 第 3 步 运行​​py文件​
  • 我们先确认​​python3​​的位置

python3的位置

  • 如果想要​​sleep.py​​能自动执行
  • 必须要明确这个py文件的打开方式
  • 用 ​​python3​​ 来打开执行
  • python3 在哪?
  • ​which python3​​?
  • 就是 ​​/usr/bin​​ 下的 ​​python3​
  • 注意 ​​usr​​ 不是 ​​user​

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_python_07

  • 下面要编辑​​sleep.py​
  • 在 ​​sleep.py​​ 第一行设置
  • 自动打开方式为​​/usr/bin/python3​

添加文件头

  • 最上面的一句以 ​​#​​ 开头

#!/usr/bin/python3
import time
while True:
print(time.asctime())
time.sleep(1)

  • ​#​​ 的意思是 ​​注释​
  • 这句不用执行
  • !/usr/bin/python3
  • 这个设置了当前文件(​​sleep.py​​)的执行方式

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_打开方式_08

  • 准备运行
  • ​:wq​​保存并退出vim

保存并运行

  • 依然使用 ​​./sleep.py​
  • . 指的是当前路径
  • /指的是当前路径下

[oeasy]python0028_直接运行_修改py文件执行权限_设置py文件打开方式_打开方式_09

  • 执行成功!!!
  • 🤪
  • 跳出循环的快捷键仍然是
  • ctrl+c

总结

  • 这次总算可以把 ​​sleep.py​​ 直接执行了
  • sleep.py文件头部要声明好打开方式
  • ​#!/usr/bin/python3​
  • 用的是 ​​python3​​ 解释 ​​sleep.py​
  • 修改 ​​sleep.py​​ 文件 的执行权限
  • 给当前用户增加 执行​​execute​​ 权限
  • chmod u+x ​​sleep.py​​
  • 运行​​./sleep.py​​成功
  • 但我不想总带着当前路径​​./​
  • 我想要直接​​sleep.py​​就自动运行
  • 这可能么?🤪
  • 我们下次再说!👋
  • 蓝桥->​​https://www.lanqiao.cn/courses/3584​​
  • github->​​https://github.com/overmind1980/oeasy-python-tutorial​​
  • gitee->​​https://gitee.com/overmind1980/oeasypython​​
  • 视频->​​https://www.bilibili.com/video/BV1CU4y1Z7gQ​​ 作者:oeasy
举报

相关推荐

0 条评论