【5】python_基础_字符集、列表推导式、模块

Python基础

1 字符集

  • 字符集编码发展历程简介:2进制(0/1)→ASCII表(数字/英文/符号)→gb2312(简体中文) →gbk(汉字) →Unicode(万国码,存储空间加倍) →UTF-8
  • 跨国官方语言兼容:本国语言字符集→转换成Unicode→转换成外国语言字符集
  • python2的默认字符是ascii,python3的默认字符是utf-8
  • python2不支持中文,报错:no-ascii,解决方案:在py文件头部加上# -*- coding:utf-8 -*-

2 列表推导式(列表生成式)

  • 列表推导式:又叫列表生成式。
    res1=[str(i).zfill(2) for i in res1]

循环替换,不使用列表推导式练习

1 1 # 循环替换,不使用列表推导式
2 2 # 随机生成如下list:['03', '06', '31', '19', '05', '20']
3 3 import random
4 4 res = random.sample(range(1,34),6)  #生成列表
5 5 for i in range(len(res)):   #根据列表长度n,循环n次
6 6     tmp = res[i]    #将每次循环拿到的值,保存为tmp
7 7     res[i] = str(tmp).zfill(2)  #将tmp先转为字符串,再使用方法 zfill左补0,共2位,并赋值给当前循环下标对应的值
8 8 print('2=====',res) #打印格式化后的列表
1 2===== ['03', '06', '31', '19', '05', '20']
View 循环替换练习 Result

列表推导式(列表生成式)练习

 1 # 列表推导式(列表生成式)
 2 # 把i作为每次循环res1取到的值,然后对i进行左补0处理,将每次处理的结果保存在新的列表中,再赋值给res1列表
 3 res1 = random.sample(range(1,34),6)
 4 res1 = [str(i).zfill(2) for i in res1]
 5 print('4=====',res1)
 6 
 7 # 每个数再加10
 8 res3 = [3,6,31,19,5,20]
 9 res3 = [ i+10 for i in res3]
10 print('5=====',res3)
11 
12 # 0~1000中的偶数(步长为2)
13 ou = [ i for i in range(0,1001,2)]
14 print('6=====',ou)
1 4===== ['09', '02', '20', '33', '26', '05']
2 5===== [13, 16, 41, 29, 15, 30]
3 6===== [0, 2,...1000]
View 列表推导式 Result

3 模块

  • 模块实质上就是一个python文件,它是用来组织代码的,意思就是说把python代码写到里面,文件名就是模块的名称,test.py test就是模块名称。

3.1 标准模块

  • 标准模块:python自带的模块,免安装。即可以直接import的模块,如json/random/datetime/time/os等

3.1.1 os模块

 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 
 5 import os
 6 #*****取当前路径*****
 7 print('1=====',os.getcwd()) #取当前路径  (路径:win \\  mac /)
 8 
 9 #*****创建文件夹*****
10 os.mkdir('spz')    #创建文件夹,默认在当前文件夹创建
11 os.mkdir('d:\\spz')    #创建文件夹,可以加上绝对路径,父级目录不存在时,则报错
12 os.makedirs('one\\spz2') #创建文件夹,父级目录不存在时,则一起创建父级目录
13 
14 #*****获取指定文件夹下的文件或文件夹(返回一个list)*****
15 print('2=====',os.listdir('.')) # 获取当前目录下的文件或文件夹。返回一个list
16 print('3=====',os.listdir('d:\\')) # 获取d盘根目录下的文件或文件夹。
17 print('4=====',os.listdir(r'test\\')) # 获取对应目录下的文件或文件夹。加r是避免如\t等 以为特殊字符,r用来转义
18 
19 #*****删除空文件夹*****
20 for i in range(10):
21     os.makedirs('test\\test%s'%i)
22 os.rmdir('test')  #删除空文件夹,文件夹非空会报错
23 
24 print(os.remove("delete.txt"))  # 删除文件。文件不存在报错。
25 print(os.rmdir("delete1"))  # 删除指定的空文件夹。删除非空则报错。
26 print(os.removedirs("del\\del1"))  # 递归删除空目录(通过在目录上由深及浅逐层调用rmdir()函数)。遇到删除非空文件夹则报错。
27 # 参考https://blog.csdn.net/t704379675/article/details/55026009
28 
29 #*****拼接路径*****
30 print('5=====',os.path.join('nhy123','test0','a.txt') )#自动拼路径
31 #*****获取当前系统的路径分割符*****
32 print('6=====',os.sep) #当前系统的路径分割符 win\
33 #*****获取父目录路径*****
34 print('7=====',os.path.dirname(r'D:\\PycharmProjects\base\\Python3_class\\Day5\test\\test0\\a.txt'))  #获取父目录路径
35 #*****获取文件大小*****
36 print('8=====',os.path.getsize(r'test\\test0\\a.txt')) #获取文件大小
37 #*****判断文件或目录是否存在*****
38 print('9=====',os.path.exists(r'test\\test0\\a.txt')) #判断文件或目录是否存在。存在,则返回True;不存在,则返回False
39 #*****判断是否是文件夹*****
40 print('10=====',os.path.isdir(r'test\\test0\\q.txt')) #判断是否是文件夹。是文件夹,则返回True;不是文件夹,则返回False。如果不存在,则返回False
41 #*****判断是否是文件*****
42 print('11=====',os.path.isfile(r'test\\test0\\q.txt')) #判断是否是文件。是文件,则返回True;不是文件,则返回False。如果不存在,则返回False
43 #*****分割文件夹路径和文件名称(返回元组)*****
44 print('12=====',os.path.split(r'test\test0\a.txt')) #分割文件名和路径
45 #*****循环获取指定路径及其子目录下的文件夹路径、所有文件夹、所有文件*****
46 for cur_dir,dirs,files in os.walk(r'3\\'):  #自动循环。cur_dir当前目录,dirs对应目录下所有目录,files对应目录下所有文件
47     print('13=====','cur_dir=====',cur_dir,'dirs=====',dirs,'f=====',files)
48 
49 os.rename("spz1","spz")#重命名,左旧右新
50 print('14=====',os.stat("6 OS模块.py"))  # 获取文件信息
51 print('15=====',os.environ)  # 当前系统的环境变量
52 print('16=====',os.name)  # 当前系统名称
53 print('17=====',os.linesep)  # 当前操作系统的换行符
54 print('18=====',os.pathsep)  # 当前系统的环境变量中每个路径的分隔符,linux是:,windows是;
1 1===== E:\PycharmProjects\Python3_class\Day5
 2 2===== ['1 string', '1 string format.py', '1.py', '2 decode.py', '3', '3 function 补充.py', '4 递归 列表生成式.py', '5 内置函数.py', '6 format转时间戳.py', '6 module.py', '6 OS模块.py', '6 time模块.py', '6 时间戳转format.py', '6 检查模块是否安装成功.py', '6 自动修改日志名称.py', '6 自动创建文件.py', 'del', 'delete1', 'goods', 'homework', 'logs', 'logs.zip', 'my_fun', 'one', 'spz1', 'test', 'test.py', 'testia.txt', 'testtest0a.txt', 'testtest2a.txt', 'testtest4a.txt', 'testtest6a.txt', 'testtest8a.txt', 'video', '修改pip源为国内网站.py']
 3 3===== ['$RECYCLE.BIN', '12306Bypass', '1results', '1scenarios', '1scripts', '1testclient', 'apache-tomcat-7.0.82-windows-x64', 'baidu', 'BaiduNetdiskDownload', 'BugReport.txt', 'chrome 下载', 'CloudMusic', 'eclipse-workspace', 'hwm', 'ksdler', 'LS', 'Microsoft Visual C++ 2008 Redistributable Package', 'Miniconda3', 'Net', 'Program Files', 'Program Files (x86)', 'Python2713', 'Python362', 'RcsFetionLog', 'report', 'Roaming', 'SoapUI-Tutorials', 'spz', 'tomcat 7.0.47', 'tomcat7-java_shop', 'Users', 'Virtual Machines', 'Windows Virtual PC', '屏保', '杂七杂八', '迅雷下载', '颖淮1.9']
 4 4===== ['1 string', 'test0', 'test1', 'test2', 'test3', 'test4', 'test5', 'test6', 'test7', 'test8', 'test9']
 5 5===== nhy123\test0\a.txt
 6 6===== \
 7 7===== D:\\PycharmProjects\base\\Python3_class\\Day5\test\\test0
 8 8===== 3
 9 9===== True
10 10===== False
11 11===== False
12 12===== ('test\\test0', 'a.txt')
13 13===== cur_dir===== 3\\ dirs===== ['a', 'b'] f===== []
14 13===== cur_dir===== 3\\a dirs===== ['adir'] f===== ['a1', 'a2']
15 13===== cur_dir===== 3\\a\adir dirs===== [] f===== ['adir1']
16 13===== cur_dir===== 3\\b dirs===== [] f===== ['b1', 'b2']
17 14===== os.stat_result(st_mode=33206, st_ino=1970324837026258, st_dev=139065, st_nlink=1, st_uid=0, st_gid=0, st_size=3418, st_atime=1530517252, st_mtime=1530517252, st_ctime=1530494537)
18 15===== environ({'FTP_PASSIVE': '1', 'ANALYSIS_PATH': 'D:\\Program Files (x86)\\HP\\LoadRunner\\', 'JRE_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_101\\jre', 'PROCESSOR_LEVEL': '6', 'SYSTEMROOT': 'C:\\Windows', 'USERPROFILE': 'C:\\Users\\ucs_huangwenmin', 'LOCALAPPDATA': 'C:\\Users\\ucs_huangwenmin\\AppData\\Local', 'PYTHONPATH': 'E:\\PycharmProjects\\Python3_class', 'LG_PATH': 'D:\\Program Files (x86)\\HP\\LoadRunner\\', 'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files', 'CATALINA_HOME': 'C:\\Program Files\\tomcat\\apache-tomcat-7.0.82', 'VBOX_MSI_INSTALL_PATH': 'D:\\Program Files\\Oracle\\VirtualBox\\', 'CLASSPATH': '.;D:\\Program Files\\bsh-2.0b4.jar;D:\\Program Files\\apache-ant-1.9.6\\lib;C:\\Program Files\\tomcat\\apache-tomcat-7.0.82\\lib\\servlet-api.jar;C:\\Program Files\\Java\\jdk1.8.0_101\\lib\\dt.jar;C:\\Program Files\\Java\\jdk1.8.0_101\\lib\\tools.jar;D:\\Program Files\\apache-jmeter-3.3/lib/ext/ApacheJMeter_core.jar;D:\\Program Files\\apache-jmeter-3.3/lib/jorphan.jar;D:\\Program Files\\apache-jmeter-3.3/lib/logkit-2.0.jar', 'HOMEPATH': '\\Users\\ucs_huangwenmin', 'APPDATA': 'C:\\Users\\ucs_huangwenmin\\AppData\\Roaming', 'PUBLIC': 'C:\\Users\\Public', 'LOG_FILE': 'C:\\Users\\UCS_HU~1\\AppData\\Local\\Temp\\ihp_custom_batches.log', 'SESSIONNAME': 'Console', 'COMSPEC': 'C:\\Windows\\system32\\cmd.exe', 'SYSTEMDRIVE': 'C:', 'USERDNSDOMAIN': 'WANGJIN.LOCAL', 'TERM': 'dumb', 'PROCESSOR_REVISION': '3c03', 'PROGRAMFILES': 'C:\\Program Files', 'UNXUTILS_HOME': 'D:\\Program Files\\UnxUtils', 'LR_ROOT': 'D:\\Program Files (x86)\\HP\\LoadRunner\\', 'ASL.LOG': 'Destination=file', 'PROGRAMDATA': 'C:\\ProgramData', 'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files', 'WINDOWS_TRACING_LOGFILE': 'C:\\BVTBin\\Tests\\installpackage\\csilogfile.log', 'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC', 'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 60 Stepping 3, GenuineIntel', 'PSMODULEPATH': 'C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\PowerShell\\Modules\\', 'TMP': 'C:\\Users\\UCS_HU~1\\AppData\\Local\\Temp', 'PYTHONUNBUFFERED': '1', 'JMETER_HOME': 'D:\\Program Files\\apache-jmeter-3.3', 'TOMCAT_HOME': 'C:\\Program Files\\tomcat\\apache-tomcat-7.0.82', 'LR_PATH': 'D:\\Program Files (x86)\\HP\\LoadRunner\\', 'VUGEN_PATH': 'D:\\Program Files (x86)\\HP\\LoadRunner\\', 'USERDOMAIN': 'WANGJIN', 'PROGRAMFILES(X86)': 'C:\\Program Files (x86)', 'COMPUTERNAME': 'HUANGWENMIN1', 'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files', 'CURR_DIR': 'D:\\Program Files (x86)\\HP\\LoadRunner\\dat\\Setup\\LoadRunner\\MSBuild\\..\\..\\..\\..', 'PYTHONIOENCODING': 'UTF-8', 'WINDIR': 'C:\\Windows', 'FP_NO_HOST_CHECK': 'NO', 'PROGRAMW6432': 'C:\\Program Files', 'JAVA_HOME': 'C:\\Program Files\\Java\\jdk1.8.0_101', 'WINDOWS_TRACING_FLAGS': '3', 'OS': 'Windows_NT', 'ALLUSERSPROFILE': 'C:\\ProgramData', 'PATH': 'D:\\Miniconda3\\Library\\bin;D:\\Miniconda3;D:\\Program Files\\UnxUtils\\usr\\local\\wbin\\;\\D:\\Program Files\\apache-ant-1.9.6\\bin;C:\\Program Files\\tomcat\\apache-tomcat-7.0.82\\bin;C:\\Program Files\\Java\\jdk1.8.0_101\\bin;C:\\Program Files\\Java\\jdk1.8.0_101\\jre\\bin;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\;d:\\Program Files (x86)\\Windows7Master;D:\\Program Files\\TortoiseSVN\\bin;C:\\Program Files\\Microsoft SQL Server\\120\\DTS\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\Client SDK\\ODBC\\110\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files\\Microsoft SQL Server\\120\\Tools\\Binn\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\Tools\\Binn\\ManagementStudio\\;C:\\Program Files (x86)\\Microsoft SQL Server\\120\\DTS\\Binn\\;C:\\Program Files\\Java\\jdk1.8.0_101\\bin;D:\\Python2713;D:\\Python2713\\Scripts;D:\\Python362;D:\\Python362\\Scripts;   ;C:\\strawberry\\c\\bin;C:\\strawberry\\perl\\bin;D:\\Program Files (x86)\\IDM Computer Solutions\\UltraEdit;D:\\Program Files\\TortoiseGit\\bin;d:\\Miniconda3;d:\\Miniconda3\\Scripts;d:\\Miniconda3\\Library\\bin;D:\\Python362\\Scripts\\;D:\\Python362\\;D:\\Python2713\\Scripts;D:\\Python2713;C:\\Users\\ucs_huangwenmin\\AppData\\Local\\Programs\\Fiddler', 'HOMEDRIVE': 'C:', 'LOGGER_CONFIG_PATH': 'D:\\Program Files (x86)\\HP\\LoadRunner\\dat\\ltlogconf.xml', 'NUMBER_OF_PROCESSORS': '8', 'ANT_HOME': 'D:\\Program Files\\apache-ant-1.9.6', 'PROCESSOR_ARCHITECTURE': 'AMD64', 'PYCHARM_HOSTED': '1', 'TEMP': 'C:\\Users\\UCS_HU~1\\AppData\\Local\\Temp', 'TARGETDIR': 'D:\\Program Files (x86)\\HP\\LoadRunner\\dat\\Setup\\LoadRunner\\MSBuild\\..\\..\\..\\..', 'LOGONSERVER': '\\\\AD2016', 'USERNAME': 'ucs_huangwenmin'})
19 16===== nt
20 17===== 
21 
22 18===== ;
View OS模块 Result
过滤文件夹并创建文件练习
 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 
 5 # 把文件名末尾是偶数的文件夹中,创建一个txt文件,里面随便写点东西
 6 import os
 7 dir = os.listdir(r'test')
 8 for i in dir:
 9     if i[-1].isdigit():
10         if not int(i[-1]) % 2:
11             #path =r'test\\%s\\b.txt'%i
12             path = os.path.join('test', i, 'c.txt')
13             with open(path,'w',encoding='utf-8') as fw:
14                 fw.write('abc')
遍历查找文件并重命名练习 
 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 # logs目录下,循环遍历文件,将文件名重命名为xxx.bak(注意要进到相应的路径下再重命名)
 5 import os
 6 for cur_dir,dirs,files in os.walk(r'logs\\'):
 7     print('cur_dir=====',cur_dir,'dirs=====',dirs,'files=====',files)
 8     for file in files:
 9         old_path=os.path.join(cur_dir,file)
10         new_path = os.path.join(cur_dir, file+'.bak')
11         os.rename(old_path,new_path)

3.1.2 time模块

1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 
 5 import time,datetime
 6 # 时间戳 从unix元年开始到现在过的秒数
 7 
 8 print('1=====',time.time())# 获取当前时间戳。可使用在线转换工具查看
 9 print('2=====',int(time.time()))# 获取当前时间戳。可使用在线转换工具查看
10 
11 # 格式化时间
12 print('3=====',time.strftime('%Y-%m-%d %H:%M:%S')) #格式化时间
13 s=3*24*60*60
14 print('4=====',time.time()-s) #三天前的时间戳
15 
16 # 时间元组 (时间戳与格式化时间的中介)
17 # 把时间戳转成时间元组
18 print('5=====',time.gmtime()) # 把时间戳转成时间元组,如果不传时间戳,那么取的是标准时区的时间
19 print('6=====',time.localtime()) # 把时间戳转成时间元组,如果不传时间戳,那么取的是当前时区的时间
20 print('7=====',time.localtime(time.time()-s)) #三天前的时间元组
21 time_tuple =time.localtime()
22 # 把格式化时间转成时间元组
23 print('8=====',time.strptime('2018/07/01','%Y/%m/%d')) # 把格式化好的时间转成时间元组
24 # 时间元组转成格式化时间
25 print('9=====',time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()-s))) #三天前的时间元组转化为格式化好的时间
26 # 时间元组转成时间戳
27 print('10=====',time.mktime(time_tuple)) # 把时间元组转成时间戳
 1 1===== 1530521852.7921028
 2 2===== 1530521852
 3 3===== 2018-07-02 16:57:32
 4 4===== 1530262652.7921028
 5 5===== time.struct_time(tm_year=2018, tm_mon=7, tm_mday=2, tm_hour=8, tm_min=57, tm_sec=32, tm_wday=0, tm_yday=183, tm_isdst=0)
 6 6===== time.struct_time(tm_year=2018, tm_mon=7, tm_mday=2, tm_hour=16, tm_min=57, tm_sec=32, tm_wday=0, tm_yday=183, tm_isdst=0)
 7 7===== time.struct_time(tm_year=2018, tm_mon=6, tm_mday=29, tm_hour=16, tm_min=57, tm_sec=32, tm_wday=4, tm_yday=180, tm_isdst=0)
 8 8===== time.struct_time(tm_year=2018, tm_mon=7, tm_mday=1, tm_hour=0, tm_min=0, tm_sec=0, tm_wday=6, tm_yday=182, tm_isdst=-1)
 9 9===== 2018-06-29 16:57:32
10 10===== 1530521852.0
View time模块 Result
1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 
 5 # 时间戳转格式化好的时间
 6 # 1、把时间戳转成时间元组 2、把时间元组转成格式化好的时间
 7 import time
 8 def TimestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
 9     if timestamp:
10         time_tuple = time.localtime(timestamp)  #把时间戳转成时间元组
11         return time.strftime(format,time_tuple) #把时间元组转成格式化好的时间
12     else:
13         return time.strftime(format)
14 
15 print('1=====',TimestampToStr(1530177758.6843846))
16 print('2=====',TimestampToStr())
17 print('3=====',TimestampToStr(1530177758.6843846,'%Y/%m/%d'))
View 时间戳转成时间元组 Code
1 1===== 2018-06-28 17:22:38
2 2===== 2018-07-02 16:58:39
3 3===== 2018/06/28
View 时间戳转成时间元组 Result
 1 #!/usr/bin/python
 2 # -*- coding:utf-8 -*-
 3 # Author:hwm
 4 
 5 # 格式化好的时间转时间戳
 6 # 1、把格式化好的时间转成时间元组 2、把时间元组转成时间戳
 7 import time
 8 def StrToTimestamp(format_time=None,format='%Y-%m-%d %H:%M:%S'):
 9     if format_time:
10         time_tuple = time.strptime(format_time,format)  # 把格式化好的时间转成时间元组
11         return int(time.mktime(time_tuple)) #把时间元组转成时间戳
12     else:
13         return int(time.time())
14 
15 print('1=====',StrToTimestamp('2018-07-01 17:31:28'))
16 print('2=====',StrToTimestamp())
17 print('3=====',StrToTimestamp('2018/07/01','%Y/%m/%d'))
View 格式化时间转成时间戳 Code
1 1===== 1530437488
2 2===== 1530522030
3 3===== 1530374400
View 格式化时间转成时间戳 Result

3.2 开源模块

  • 开源模块/第三方模块:他人写好的模块,安装完后能用的。
  • 第三方模块安装方式:
    • 1)命令行自动安装 pip install pymysql
      • 'pip命令不存在'解决方法:python安装目录下/Scripts/pip.exe加到环境变量后,就可以在命令行用pip去下载模块.
        • 在环境变量的PATH里新建D:\Miniconda3\Scripts
      • 'pip Fatal error in launcher: Unable to create process using ''''解决方法:同上加环境变量

      • 'Unknow or unsupported command 'install''解决方法:where pip,如果出现多行,且 /Scripts/pip.exe不在第一行,则在其他路径下将文件名改成非pip就可以了。
      • '超时'解决方法:运行《修改pip源为国内网站.py》
      • 指定版本安装:python2 -m pip install pymysql、python3 -m pip install pymysql

  • 1 import os,sys,platform
     2 ini="""[global]
     3 index-url = https://pypi.doubanio.com/simple/
     4 [install]
     5 trusted-host=pypi.doubanio.com
     6 """
     7 os_version=platform.platform()
     8 if 'Windows' in os_version:
     9     os_flag=False
    10     file_name='pip.ini'
    11 else:
    12     os_flag=True
    13     file_name='pip.conf'
    14 if os_flag==True:
    15     pippath=os.environ["HOME"]+os.sep+".pip"+os.sep
    16 else:
    17     pippath=os.environ["USERPROFILE"]+os.sep+"pip"+os.sep
    18 if not os.path.exists(pippath):
    19     os.mkdir(pippath)
    20 with open(pippath+file_name,"w") as f:
    21     f.write(ini)
    View 修改pip源为国内网站 Code
      • 2)手动安装
        • 下载pip源地址:https://pypi.org/project/pinyin/
        • .whl安装
          • 1、进入文件对应的目录,pip install redis-2.10.6-py2.py3-none-any.whl
          • 2、或者任意目录下,pip install 绝对路径\redis-2.10.6-py2.py3-none-any.whl
        • .tar.gz安装
          • 1、解压
          • 2、进入setup.py目录下,shift+右键,在此处打开命令行窗口。或者直接在地址栏输入cmd
          • 3、python setup.py install执行
      • 3) pycharm
        • pycharm->settings->project->Project Interpreter ,点加号,搜索下载安装
    • 检查模块是否安装成功:在pip.exe目录路径下,打开命令行输入pip list

3.3 自定义模块

  • 自己写的python模块

猜你喜欢

转载自www.cnblogs.com/xhybk/p/9261233.html