摘要
第3 章系统与文件操作
Python语言可以结合丰富的模块库,完成对计算机系统、计算机文件系统的管理和控
制,也可以方便地对多种常见文档进行操作,大大提升办公自动化的效率。
3.1系统操作
3.1.1获取操作系统环境变量
调用os模块库的getenv()函数,可以获取系统中用户变量或系统变量的设置内容。其
原型为:
os.getenv(key, default=None)
其中,参数key为用户配置和系统配置的环境变量项①名称。例如:
>>> import os
>>> os.getenv('HOMEPATH')
'\\Users\\Administrator'
>>> os.getenv('windir')
'C:\\windows'
>>> os.getenv('pathext')
'.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC'
此外,也可以使用os.environ[]获取环境变量。例如:
>>> os.environ['PATH']
'C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\
System32\\WindowsPowerShell\\v1.0\\;C:\\Users\\Administrator\\AppData\\Local\\
① 环境变量项,可以通过在桌面右击选择“属性”→“高级系统设置”→“高级”→“环境变量”,在“环境变量”对话框
中进行查看和设置。
第3 章系统与文件操作
Programs\\Python\\Python38;C:\\Users\\Administrator\\AppData\\Local\\Programs
\\Python\\Python38\\Scripts; C: \\Program Files (x86) \\Graphviz2.38\\bin; C: \\
Program Files\\WinRAR;C:\\Program Files (x86)\\Graphviz2.38\\bin'
3.1.2获取操作系统信息
调用platform 模块库所提供的各项函数,可以获得操作系统的信息。这些函数包括:
platform()函数获取操作系统名称及版本号,version()函数获取操作系统版本号,
architecture()函数获取操作系统的位数,machine()函数获取计算机类型,node()函数获取
计算机的网络名称,processor()函数获取处理器信息,system()函数获取操作系统信息,
uname()函数获取综合信息。例如: >>> import platform
>>> platform.platform() #获取操作系统名称及版本号
'Windows-7-6.1.7601-SP1'
>>> platform.version() #获取操作系统版本号
'6.1.7601'
>>> platform.architecture() #获取操作系统的位数
('64bit', 'WindowsPE')
>>> platform.machine() #获取计算机类型
'AMD64'
>>> platform.node() #获取计算机的网络名称
'SC-202008041040'
>>> platform.processor() #获取处理器信息
'Intel64 Family 6 Model 37 Stepping 5, GenuineIntel'
>>> platform.system() #获取操作系统信息
'Windows'
>>> platform.uname()
uname_result(system='Windows', node='SC-202008041040', release='7', version=
'6.1.7601', machine= 'AMD64', processor= 'Intel64 Family 6 Model 37 Stepping 5,
GenuineIntel')
此外,sys模块库中也提供了多项能够报告操作系统和Python系统各种信息的属性,
可以在导入sys库后,使用dir(sys)来查看这些属性。
109
Python 与数据科学
3.2文件系统操作
os模块库中包含了一些对文件系统进行操作的函数,其中包括对文件夹及对文件的操
作。在导入os模块库后,通过执行dir(os)和dir(os.path)语句,可以查看其模块和函数的
名称。这里就其中几个常用的函数做详细介绍。
1.获取当前工作路径
调用os.getcwd()函数可获得当前的工作路径,注意当前路径并不是指脚本所在的路
径,而是所运行脚本的路径(二者经常会是一致的)。例如:
>>> import os
>>> print(os.getcwd())
C:\Users\Administrator\AppData\Local\Programs\Python\Python38
如果将上述两条语句内容写入Python程序文件cwd.py,并保存在E:\code文件夹下,
运行Windows的命令行窗口并进入E:\code文件夹,输入:
E:\code> python pwd.pyencoding='utf-8')
否则在打开一个中文文本文件并尝试读取其中文本时,会抛出UnicodeDecodeError异
常。另外,可以使用codecs模块库读取不同编码的文本(示例代码见文件code_codecs_read
_utf8.py)。
3.3.2结构化文件读写
可以使用NumPy和pandas模块库中的相应函数,从结构化的文本文件中读取数据,
并以numpy.ndarray或pandas.DataFrame等结构来组织数据。
1.NumPy模块库
调用numpy.loadtxt()函数,可以读入文本文件中的内容,并将其组织成numpy.
ndarray数据类型的数据。其原型为:
numpy.loadtxt(fname, dtype= < class 'float'>, comments= '# ', delimiter= None,
converters= None, skiprows = 0, usecols = None, unpack = False, ndmin = 0,
encoding='bytes', max_rows=None)
其中主要参数的说明见表