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

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

 

直接运行

回忆上次内容

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

        image.gif编辑

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

              import time

              while True:

                 print(time.asctime())

                 time.sleep(1)

              尝试执行

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

                image.gif编辑

                  • 第 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
                                                    • change 改变
                                                    • mode 状态位 mode bits
                                                      • u+x
                                                        • user 当前用户组
                                                        • +x增加 excute 的权限
                                                          • sleep.py
                                                            • 被改变的文件名称

                                                                image.gif编辑

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

                                                                          执行

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

                                                                                image.gif编辑

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

                                                                                          进行搜索

                                                                                          image.gif编辑

                                                                                          提示是这样的

                                                                                          image.gif编辑

                                                                                            • 总共分 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

                                                                                                                      image.gif编辑

                                                                                                                        • 下面要编辑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)的执行方式

                                                                                                                                        image.gif编辑

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

                                                                                                                                          保存并运行

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

                                                                                                                                                image.gif编辑

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

                                                                                                                                                          总结

                                                                                                                                                            • 这次总算可以把 sleep.py 直接执行了
                                                                                                                                                              • sleep.py文件头部要声明好打开方式
                                                                                                                                                                • #!/usr/bin/python3
                                                                                                                                                                • 用的是 python3 解释 sleep.py
                                                                                                                                                                    • 修改 sleep.py 文件 的执行权限
                                                                                                                                                                      • 给当前用户增加 执行execute 权限
                                                                                                                                                                        • chmod u+x sleep.py
                                                                                                                                                                            • 运行./sleep.py成功
                                                                                                                                                                              • 但我不想总带着当前路径./
                                                                                                                                                                                • 我想要直接sleep.py就自动运行
                                                                                                                                                                                  • 这可能么?🤪
                                                                                                                                                                                    相关文章
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    Python
                                                                                                                                                                                    python如何读取excel文件,并修改内容?
                                                                                                                                                                                    python如何读取excel文件,并修改内容?
                                                                                                                                                                                    4 0
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    Unix Linux 数据处理
                                                                                                                                                                                    使用Python批量复制文件夹及其子文件夹下的指定文件
                                                                                                                                                                                    使用Python批量复制文件夹及其子文件夹下的指定文件
                                                                                                                                                                                    10 1
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    Python
                                                                                                                                                                                    Python自动化办公实战案例:文件整理与邮件发送
                                                                                                                                                                                    Python自动化办公实战案例:文件整理与邮件发送
                                                                                                                                                                                    6 0
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    存储 JSON 数据库
                                                                                                                                                                                    Python中列表数据的保存与读取:以txt文件为例
                                                                                                                                                                                    Python中列表数据的保存与读取:以txt文件为例
                                                                                                                                                                                    13 2
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    存储 NoSQL MongoDB
                                                                                                                                                                                    MongoDB数据库转换为表格文件的Python实现
                                                                                                                                                                                    MongoDB数据库转换为表格文件的Python实现
                                                                                                                                                                                    11 0
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    存储 人工智能 数据处理
                                                                                                                                                                                    Python:编程的艺术与科学的完美交融
                                                                                                                                                                                    Python:编程的艺术与科学的完美交融
                                                                                                                                                                                    19 1
                                                                                                                                                                                    |
                                                                                                                                                                                    22小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    JSON 数据格式 开发者
                                                                                                                                                                                    pip和requests在Python编程中各自扮演着不同的角色
                                                                                                                                                                                    【5月更文挑战第9天】`pip`是Python的包管理器,用于安装、升级和管理PyPI上的包;`requests`是一个HTTP库,简化了HTTP通信,支持各种HTTP请求类型及数据交互。两者在Python环境中分别负责包管理和网络请求。
                                                                                                                                                                                    27 5
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    存储 Python 容器
                                                                                                                                                                                    Python高级编程
                                                                                                                                                                                    Python集合包括可变的set和不可变的frozenset,用于存储无序、不重复的哈希元素。创建集合可使用{}或set(),如`my_set = {1, 2, 3, 4, 5}`。通过add()添加元素,remove()或discard()删除元素,如`my_set.remove(3)`。
                                                                                                                                                                                    12 0
                                                                                                                                                                                    |
                                                                                                                                                                                    21小时前
                                                                                                                                                                                    |
                                                                                                                                                                                    测试技术 Python
                                                                                                                                                                                    Python模块化方式编程实践
                                                                                                                                                                                    【5月更文挑战第5天】Python模块化编程提升代码质量,包括:定义专注单一任务的模块;使用`import`导入模块;封装函数和类,明确命名便于重用;避免全局变量降低耦合;使用文档字符串增强可读性;为每个模块写单元测试确保正确性;重用模块作为库;定期维护更新以适应Python新版本。遵循这些实践,可提高代码可读性、重用性和可维护性。
                                                                                                                                                                                    38 2