基本介绍:os模块提供了非常丰富的方法用来处理文件和目录,os模块提供了多数操作系统的功能接口函数,根据不同的平台进行相应的操作。
入门测试:
使用os模块的system方法调出linux命令:
In [1]: import os #导入os模块
In [2]: os.system('ls')
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=.gz
Out[2]: 0
In [3]: a=os.system('ls') ##得到的是执行的命令的返回值,并不是执行结果
anaconda-ks.cfg
epel-release-7-5.noarch.rpm
ipython-4.1.2
ipython-4.1.2.tar.gz
pip-8.1.2
pip-8.1.2.tar.gz#md5=.gz
In [4]: a #执行ls命令的返回值,成功,为0
Out[4]: 0
In [5]: b=os.popen('ls').readlines() #将得到的结果直接赋值给b列表
In [6]: b #ls执行结果输出到内存,再全部读取赋值给b列表
Out[6]:
['anaconda-ks.cfg\n',
'epel-release-7-5.noarch.rpm\n',
'ipython-4.1.2\n',
'ipython-4.1.2.tar.gz\n',
'pip-8.1.2\n',
'pip-8.1.2.tar.gz#md5=.gz\n']
代码说明及拓展:
os.remove 删除文件
os.rename 重命名文件
os.walk 生成目录树下的所有文件名
os.chdir 改变目录
os.listdir 列出指定目录的文件
os.getcwd 取得当前工作目录
os.chmod 改变目录权限
os.path.getsize 返回文件大小
os.path.exists 是否存在
os.path.isabs 是否为绝对路径
os.path.isdir 是否为目录
os.path.isfile 是否为文件
2. python 执行linux命令
Python 可以通过 subprocess 模块调用 Linux 命令。下面是几个例子:
1.执行一个简单的命令,例如ls命令,可以使用subprocess.run()方法:
import subprocess
result = subprocess.run(['ls', '-l'], stdout=subprocess.PIPE)
print(result.stdout.decode())
2.执行一个需要输入的命令,例如sudo命令,可以使用subprocess.Popen()方法:
import subprocesssudo_password = 'mypassword'
command = 'sudo ls -l'
# 构建一个 Popen 对象来执行进程
p = subprocess.Popen(['sudo', '-S'] + command.split(), stdin=subprocess.PIPE,
stdout=subprocess.PIPE,
stderr=subprocess.PIPE,
universal_newlines=True)
# 向进程输入密码
sudo_prompt = p.communicate(sudo_password + ' ')[1]
# 输出进程的结果
print(sudo_prompt)
在python中调用linux时常见的错误包括:
找不到命令或文件:如果您在执行命令时遇到此错误,那么您需要检查命令的路径和文件名是否正确,并且确保您有执行该命令的权限。
权限不足:如果您在执行命令时遇到此错误,那么您需要确保您有执行该命令的权限,并且您的 Python 程序以足够的权限运行。
输出重定向错误:如果您在执行命令时将输出重定向到文件或者管道中,那么您需要确保输出文件或管道已经正确创建,并且您有足够的权限写入数据。
为了避免出现错误,建议在编写 Python 程序时,对命令进行封装,以确保其安全性、可靠性和可维护性。
3. 什么是Python
Python是一种跨平台的计算机程序设计语言。以下是关于Python的详细介绍:
起源与用途:Python最初是作为ABC语言的替代品而设计的,它提供了高效的高级数据结构,并支持简单有效的面向对象编程。Python是一种面向对象的动态类型语言,最初被设计用于编写自动化脚本。随着版本的不断更新和语言新功能的添加,Python越来越多地被用于独立的、大型项目的开发。
语言特性:
优点:
综上所述,Python是一种功能强大、易于学习和使用的跨平台计算机程序设计语言,广泛应用于自动化脚本编写、大型项目开发等多个领域。