传递给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
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']
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
获得python版本的信息
>>> import sys
>>> sys.version
'3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)]'
获取当前系统平台,返回操作系统的名称。
>>> import sys
>>> sys.platform
'win32'
返回系统导入的模块的 绝对路径
>>> import sys
>>> sys.modules['os']
返回所有已经导入的模块
>>>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'])
返回所有的模块,包括模块的绝对路径
>>> 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
sys.getdefaultencoding() : 获取解释器默认编码。
sys.getfilesystemencoding() : 获取内存数据存到文件里的默认编码。
>>> import sys
>>> sys.getdefaultencoding()
'utf-8'
>>> sys.getdefaultencoding()
'utf-8'
使用 os
模块为程序提供了一些可移植性。但并非所有的函数在每个平台上都可用, 比如后文中提到的一些进程管理函数在 Windows 上就不可用。
Python 文档中 os
模块的的副标题是「各种各样的操作系统接口」。模块包含的大部分函数用于创建和管理进程或文件系统,例如:目录与文件,此外还有一些其他函数。
查看特定目录下加文件
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
函数经过一个目录时,会递归的访问它的子目录,并产生一个 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')
运行shell命令,注意:这里是打开一个新的shell,运行命令,当命令结束后,关闭shell。用于打开文件或者程序,不能打开文件夹
获取系统环境变量
import os
print(os.environ)
print(type(os.environ))