sys
sys
-
sys是python自带模块,提供了一系列有关python运行环境的变量和函数的模块
-
当执行import sys 后,python在sys.path变量中所列目录中寻找sys模块文件。然后运行这个模块的主块中的语句进行初始化,然后就可以使用模块了。
-
使用dir()查看sys模块中可用方法
import sys print(dir(sys))
-
sys.platform 用于获取当前系统平台
print(sys.platform) # 得:win32
-
sys.getdefaultencoding() 获取系统当前编码
print(sys.getdefaultencoding()) #得utf-8
-
sys.getfilesystemencoding()获取文件系统使用的编码方式
print(sys.getfilesystemencoding()) #得utf-8
-
sys.path获取指定模块搜索路径的字符串列表,可以将写好的模块放在得到的某个路径下,就可以在import时正确找到
print(sys.path)
-
sys.modules查看已经加载到内存中的所有模块
print(sys.modules)
-
sys.argv从程序外部获取参数的桥梁
-
在命令行执行python模块(脚本)的命令 : python + 模块路径
-
sys.argv可以看作是一个列表,列表里面的元素可以是多个,第一个是元素本身,随后依次才是外部给予的参数
-
模块内
-
命令行内
-
-
sys.argv[0]:所获取的第一个元素是程序本身
- 模块内
-
命令行运行后
-
sys.argv[1]获取的是第一个参数 sys.argv[2]获取的是第二个参数,依次类推
-
模块内
-
命令行内
-
-
小练习
- cp: 拷贝文件
- rm: 删除
- rename: 重命名
# python 当前文件路径(xxx.py) 用户名 密码 cp 要拷贝的文件路径 目的地址 # print(len(sys.argv)) #cp:拷贝文件 #rm:删除 # rename: 重命名 if len(sys.argv)>=5: if sys.argv[1]=='minmin' and sys.argv[2]=='xiaokeai': print('登陆成功!') if sys.argv[3]=='cp' and len(sys.argv)==6: #cp 拷贝文件 if os.path.exists(sys.argv[4]) and os.path.exists(sys.argv[5]): #os.path.exists判断目录是否存在 filename=os.path.basename(sys.argv[4]) #获取要拷贝的文件名 path=os.path.join(sys.argv[5],filename) #拼接目的地址的路径和要拷贝的文件名 shutil.copy(sys.argv[4],path) #进行拷贝 print('拷贝成功!') else: print('路径错误!') elif sys.argv[3]=='rm' and len(sys.argv)==5: if os.path.exists(sys.argv[4]): if os.path.isfile(sys.argv[4]): os.remove(sys.argv[4]) print('删除成功!') else: shutil.rmtree(sys.argv[4]) print('删除成功!') elif sys.argv[3]=='rename' and len(sys.argv)==6: if os.path.exists(sys.argv[4]): if os.path.isfile(sys.argv[4]): os.rename(sys.argv[4],sys.argv[5]) print('文件重命名成功!') else: shutil.move(sys.argv[4],sys.argv[5]) # shutil.move把问价移动到新的目录(也可以用来文件夹的重命名) print('文件夹重命名成功!') else: print('输入错误,登录失败!') else: print('你输入的命令无效!')
-