【Linux/Ubuntu】Linux/Ubuntu运行python脚本

简介: 【Linux/Ubuntu】Linux/Ubuntu运行python脚本

项目中需要在Linux上运行自己写的python脚本,特此记录一下操作流程,整个流程比较简单,这里我使用的版本是python3

第一步:查看系统是否有python3

打开终端,输入:

python3

如果有python,会出现以下信息:

lcl@ubuntu:~$ python3

Python 3.6.9 (default, Mar 15 2022, 13:55:28)

[GCC 8.4.0] on linux

Type “help”, “copyright”, “credits” or “license” for more information.

第二步:编写python脚本

特别注意:python脚本的首行应加上如下代码:

#!/usr/bin/python

如果python中有中文,在代码中应加如下代码:

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

第三步:运行python脚本

cd到自己python脚本的目录下,然后 ./xxx.py 执行自己的脚本

cd textlicense/
./LicenseCheck.py

注意:如果你的脚本是在windows下编写的,移动到Linux下,可能出现如下报错。

lcl@ubuntu:~$ cd textlicense/

lcl@ubuntu:~/textlicense$ ./LicenseCheck.py

bash: ./LicenseCheck.py: /usr/bin/python^M: bad interpreter: No such file or directory

问题解决:问题一

如果出现 bash: ./LicenseCheck.py: /usr/bin/python^M: bad interpreter: No such file or directory,说明当前脚本的属性是DOS,只有在Windows下可用,在Linux下不可用。

因此,如果需要在linux使用,需要将DOC格式转换为UNIX格式。

具体操作如下:

(1)终端中打开要运行的python文件

vi LicenseCheck.py

(2)输入如下命令查看文件格式

:set ff 或 :set fileformat

(3)文档编辑器下面会出现

fileformat=dos 或 fileformat=unix

注意:fileformat=dos 说明,该文件只能在windows下运行,在linux下运行需要转换为unix格式(见(4))

(4)将文件格式修改为unix格式

:set ff=unix 或 :set fileformat=unix

(5)保存退出

:wq

(6)在运行python脚本

问题解决:问题二

运行脚本时,出现TypeError: ‘encoding’ is an invalid keyword argument for this function的报错,错误原因:

def logfile(self, text):
        with open('LicenseChecked.log', 'a+', encoding='utf-8') as f:
            t = time.strftime('%y-%m-%d %H:%M:%S')
            text = t + " " + text + '\n'
            f.write(text)
        f.close()
        return text

需要导入io模块,并且需要将:

(1)with open(‘LicenseChecked.log’, ‘a+’, encoding=‘utf-8’) as f:改为 with io.open(‘LicenseChecked.log’, ‘a+’, encoding=‘utf-8’) as f:

(2)f.write(text) 改为 f.write(text.decode(“utf-8”))

修改后如下所示:

import io
    def logfile(self, text):
        with io.open('LicenseChecked.log', 'a+', encoding='utf-8') as f:
            t = time.strftime('%y-%m-%d %H:%M:%S')
            text = t + " " + text + '\n'
            f.write(text.decode("utf-8"))
        f.close()
        return text

ps:我也不知道,为什么装的python3,但是,执行却是按照python2的规则。

问题解决:问题三

运行执行脚本时出现:TypeError: write() argument 1 must be unicode, not str 报错,需要将:

f.write(text) 改为 f.write(text.decode(“utf-8”))

【 详 情 参 见 问 题 二 】

以上就是python脚本在Linux中运行的步骤,如果喜欢,点个关注再走吧!!!!


相关文章
|
10天前
|
Ubuntu Linux
Ubuntu Linux
背景 Ubuntu起源于南非,其名称“Ubuntu”来源于非洲南部祖鲁语或豪萨语,意为“人性”、“我的存在是因为大家的存在”,这体现了非洲传统的一种价值观。Ubuntu由南非计算机科学家马克·沙特尔沃斯(Mark Shuttleworth)创办,他创立了Canonical公司来推动Ubuntu的发展。Ubuntu的第一个版本于2004年发布,至今已经走过了近20个年头,成为了Linux发行版中的佼佼者。
21 4
Ubuntu Linux
|
15天前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
78 32
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
234 61
|
25天前
|
存储 Linux 网络安全
linux应急响应检查脚本
通过这个脚本,可以快速收集系统的关键信息,有助于在发生问题时进行及时的应急响应和分析。
82 34
|
1月前
|
安全 Linux 网络安全
利用Python脚本自动备份网络设备配置
通过本文的介绍,我们了解了如何利用Python脚本自动备份网络设备配置。该脚本使用 `paramiko`库通过SSH连接到设备,获取并保存配置文件。通过定时任务调度,可以实现定期自动备份,确保网络设备配置的安全和可用。希望这些内容能够帮助你在实际工作中实现网络设备的自动化备份。
61 14
|
2月前
|
消息中间件 Java Kafka
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
本文介绍了Kafka集群的搭建过程,涵盖从虚拟机安装到集群测试的详细步骤。首先规划了集群架构,包括三台Kafka Broker节点,并说明了分布式环境下的服务进程配置。接着,通过VMware导入模板机并克隆出三台虚拟机(kafka-broker1、kafka-broker2、kafka-broker3),分别设置IP地址和主机名。随后,依次安装JDK、ZooKeeper和Kafka,并配置相应的环境变量与启动脚本,确保各组件能正常运行。最后,通过编写启停脚本简化集群的操作流程,并对集群进行测试,验证其功能完整性。整个过程强调了自动化脚本的应用,提高了部署效率。
【手把手教你Linux环境下快速搭建Kafka集群】内含脚本分发教程,实现一键部署多个Kafka节点
|
1月前
|
Ubuntu Linux 开发者
Ubuntu20.04搭建嵌入式linux网络加载内核、设备树和根文件系统
使用上述U-Boot命令配置并启动嵌入式设备。如果配置正确,设备将通过TFTP加载内核和设备树,并通过NFS挂载根文件系统。
114 15
|
2月前
|
数据挖掘 vr&ar C++
让UE自动运行Python脚本:实现与实例解析
本文介绍如何配置Unreal Engine(UE)以自动运行Python脚本,提高开发效率。通过安装Python、配置UE环境及使用第三方插件,实现Python与UE的集成。结合蓝图和C++示例,展示自动化任务处理、关卡生成及数据分析等应用场景。
201 5
|
4月前
|
Ubuntu Linux 网络安全
如何在Ubuntu 22.04或20.04 Linux上安装MobaXterm
虽然直接在Ubuntu 22.04或20.04上安装MobaXterm是不可能的任务,因为它是专为Windows设计的,但Ubuntu系统提供了丰富的原生工具和替代方案,足以满足远程管理、文件传输等需求。如果你对MobaXterm的特定功能有强烈需求,考虑采用Windows子系统或虚拟机方案作为折衷方案,不失为一种可行之道。在追求高效工作流的同时,不妨也探索和熟悉Linux原生工具,它们往往能提供更为无缝的集成体验。
1647 0
|
8月前
|
Ubuntu Java Linux
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co
Ubuntu20.04下载jdk遇到各种奇怪问题大集,Linux如何将默认的OpenJDK切换成自己安装的JDK版本(以JDK1.8为例),无需卸载原有OpenJDK,Some packages co