Python 中的 sys 库 和 os 库

一,sys--系统相关的参数和函数

1.  sys.argv: #list  

传递给Python脚本的命令行参数列表,第一个参数是程序本身的路径,实现了从程序外部向程序内传递参数。

import sys
 
print("命令行参数如下:")
for i in sys.argv:
    print(i)
 
结果如下:
D:\st13\test>1.py 西安 北京 2019-01-29
命令行参数如下:
D:\st13\test\1.py
西安
北京
2019-01-29


2. sys.path: #list

import模块的目录名位置列表 ,列表中的第一项为当前位置。

>>> import sys
>>> print(sys.path)
['', 'C:\\Python36\\python36.zip', 'C:\\Python36\\DLLs', 'C:\\Python36\\lib', 'C:\\Python36', 'C:\\Users\\Lenovo\\AppData\\Roaming\\Python\\Python36\\site-packages', 'C:\\Python36\\lib\\site-packages']

3.  sys.exit([arg]):
 

import sys
 
#sys.exit() 退出程序, 正常退出时为sys.exit(0)
def f(value):
    print(value)
    sys.exit(0)
 
print("hello")
try:
    sys.exit(1)
except SystemExit as value:
    f(value)
 
print("world")
 
结果如下:
hello
1

4. sys.version:#string

获得python版本的信息   

>>> import sys
>>> sys.version
'3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]'

5. sys.platform:    #string

获取当前系统平台,返回操作系统的名称。 

>>> import sys
>>> sys.platform
'win32'

6. sys.modules:   #module

返回系统导入的模块的 绝对路径

>>> import sys
>>> sys.modules['os']

7. sys.modules.keys() : #dict_keys

返回所有已经导入的模块 

>>>import sys
>>> sys.modules.keys()
dict_keys(['builtins', 'sys', '_frozen_importlib', '_imp', '_warnings', '_thread', '_weakref', '_frozen_importlib_external', '_io', 'marshal', 'nt', 'winreg', 'zipimport', 'encodings', 'codecs', '_codecs', 'encodings.aliases', 'encodings.utf_8', '_signal', '__main__', 'encodings.latin_1', 'io', 'abc', '_weakrefset', 's
ite', 'os', 'errno', 'stat', '_stat', 'ntpath', 'genericpath', 'os.path', '_collections_abc', '_sitebuiltins', 'sysconfig', '_bootlocale', '_locale', 'encodings.gbk', '_codecs_cn', '_multibytecodec', 'types', 'functools', '_functools', 'collections', 'operator', '_operator', 'keyword', 'heapq', '_heapq', 'itertools', '
reprlib', '_collections', 'weakref', 'collections.abc', 'importlib', 'importlib._bootstrap', 'importlib._bootstrap_external', 'warnings', 'importlib.util', 'importlib.abc', 'importlib.machinery', 'contextlib', 'zope', 'atexit'])

8 . sys.modules.values() :#dict_values

返回所有的模块,包括模块的绝对路径

>>> sys.modules.values()
dict_values([, , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , <
module 'importlib.abc' from 'C:\\Python36\\lib\\importlib\\abc.py'>, , , , ])

9.  sys.stdout   /  sys.stdin  /  sys.stderr :

sys.stdout 标准输出 ; sys.stdin 标准输入;  sys.stderr 错误输出

>>> import sys
>>> sys.stdout
<_io.TextIOWrapper name='' mode='w' encoding='utf-8'>
>>> sys.stdin
<_io.TextIOWrapper name='' mode='r' encoding='utf-8'>
>>> sys.stderr
<_io.TextIOWrapper name='' mode='w' encoding='utf-8'>

标准输入:一般为键盘输入,stdin对象为解释器提供输入字符流,一般使用input()函数

sys.stdin.readline()        从标准输入读一行

import sys
 
print("Please input you name:")
name = sys.stdin.readline()
print(name)



Please input you name:
Xiao Ming            #用户输入,然后Enter
Xiao Ming
 
 
Process finished with exit code 0

标准输出:一般为屏幕。stdout对象接收到print语句产生的输出,print调用 stdout 的 write方法

import sys
 
sys.stdout.write("123456\n")
sys.stdout.flush()



123456
 
Process finished with exit code 0

 

10. sys.getdefaultencoding() / sys.getfilesystemencoding() : #string

sys.getdefaultencoding() : 获取解释器默认编码。 

sys.getfilesystemencoding() : 获取内存数据存到文件里的默认编码。
 

>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>> sys.getdefaultencoding()
'utf-8'


二,OS——操作系统

使用 os 模块为程序提供了一些可移植性。但并非所有的函数在每个平台上都可用, 比如后文中提到的一些进程管理函数在 Windows 上就不可用。

Python 文档中 os 模块的的副标题是「各种各样的操作系统接口」。模块包含的大部分函数用于创建和管理进程或文件系统,例如:目录与文件,此外还有一些其他函数。

 

1,os.listdir()  #list

查看特定目录下加文件  

import os
pp = 'C:/Users/HP/Desktop/文档/Python/新建文件夹/text'

dd = sorted(os.listdir(pp))

print(dd)
print(type(dd))


['1.py', '2.py', 'test.py', 'text2.py']


Process finished with exit code 0

2, os.walk()   #list

函数经过一个目录时,会递归的访问它的子目录,并产生一个 tuple,其中包含了目录路径、该路径下任何直接子目录和指定目录中所有文件名的列表。

import os
pp = 'C:/Users/HP/Desktop/文档/Python/新建文件夹'

dd = sorted(os.walk(pp))

print(dd)
print(type(dd))
[('C:/Users/HP/Desktop/文档/Python/新建文件夹', ['.idea', 'basis', 'crawal', 'CTF', 'sql', 'text', 'venv', '__pycache__'], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\.idea', ['codeStyles', 'dictionaries'], ['encodings.xml', 'misc.xml', 'modules.xml', 'workspace.xml', '新建文件夹.iml']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\.idea\\codeStyles', [], ['codeStyleConfig.xml']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\.idea\\dictionaries', [], ['HP.xml']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\CTF', [], ['3位数字利用字典型爆破zip文件.py', 'ASCII偏移.py', 'ctf-cookie-欺骗.py', '凯撒密码与base64结合.py', '利用 RGB 生成图片.py', '杰斐逊转盘解密.py', '混合进制转化为字符.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\__pycache__', [], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\basis', [], ['batterys.py', 'car.py', 'class_car_inherit.py', 'class_dog.py', 'dictionary_nest.py', 'ecar.py', 'file.py', 'function.py', 'function_any_number_.py', 'function_manyshican.py', 'input_filling_dictinary.py', 'input_filling_dictionary2.py', 'kong.py', 'my_car.py', 'while_continue.py', 'zidian.py', '__init__.py', '第几天.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\crawal', [], ['100次爬取用时.py', '__init__.py', '实例 一 爬取JD商品信息.py', '实例 七 淘宝商品信息爬取.py', '实例三 用爬虫进行百度搜索.py', '实例二 爬取亚马逊的商品信息.py', '实例五 ip地址查询.py', '实例六爬取中国大学待命信息.py', '实例四 爬取图片并保存.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\sql', ['bool', 'time'], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\sql\\bool', [], ['bool_post.py', 'get_column_name.py', 'get_table_name.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\sql\\time', [], ['time_get.py', 'time_post.py', 'X-F-F头注入_columns_name.py', 'X-F-F头注入_tables_name.py', 'X-F-F头注入_z_dumps.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\text', [], ['1.py', '2.py', 'test.py', 'text2.py']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\venv', ['Include', 'Lib', 'Scripts'], ['pyvenv.cfg']), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\venv\\Include', [], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\venv\\Lib', ['site-packages'], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\venv\\Lib\\site-packages', [], []), ('C:/Users/HP/Desktop/文档/Python/新建文件夹\\venv\\Scripts', [], ['activate', 'activate.bat', 'Activate.ps1', 'deactivate.bat'])]

3,os.name    #str

显示当前使用的平台   win ->  nt  

import os

print(os.name)



'nt'

4,os.getcwd()        #str

获取当前脚本工作的绝对路径

import os
#pp = 'C:/Users/HP/Desktop/文档/Python/新建文件夹/text'

dd = os.getcwd()
print(dd)
print(type(dd))



C:\Users\HP\Desktop\文档\Python\新建文件夹\text

5, os.remove(‘filename’)

用于删除指定路径的文件。如果指定的路径是一个目录,将抛出OSError。强调必须是文件,而不是文件夹或者目录

import os

os.remove('C:\\Users\\HP\Desktop\\文档\\Python\\新建文件夹\\text\\111.py')

6,os.makedirs(‘dirname/dirname’)

可生成多层递规目录    注意 该命令只能用来生成文件夹 不能生成文件,如果文件夹已经存在会报错

import os

os.makedirs('C:/Users/HP\Desktop/文档/Python/新建文件夹/text/fff/ddd')

7,os.rmdir(‘dirname’)

删除单级目录,如果不是空目录会报错,只能用来删除空目录

import os

os.rmdir('C:/Users/HP\Desktop/文档/Python/新建文件夹/text/fff/ddd')

8,os.rename(“oldname”,”newname”)

重命名文件 

import os

os.rename('C:/Users/HP\Desktop/文档/Python/新建文件夹/text/text4.py','C:/Users/HP\Desktop/文档/Python/新建文件夹/text/text2.py')

9,os.system('filename')

运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell。用于打开文件或者程序,不能打开文件夹

10,os.environ

获取系统环境变量

import os

print(os.environ)
print(type(os.environ))

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(web安全)