#导入标准模块方法1
import math #关于数学运算的模块
print(id(math))
print(type(math))
print(math)
print(math.pi)
print(dir(math))
#导入标准模块方法2
from math import pi #只导入math当中的pi
print(pi) #直接使用pi
'''
运行结果:
1689559949544
3.141592653589793
['__doc__', '__loader__', '__name__', '__package__', '__spec__',
'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil',
'copysign', 'cos', 'cosh', 'degrees', 'e', 'erf', 'erfc', 'exp', 'expm1',
'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot',
'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'ldexp', 'lgamma', 'log', 'log10',
'log1p', 'log2', 'modf', 'nan', 'pi', 'pow', 'radians', 'remainder', 'sin', 'sinh',
'sqrt', 'tan', 'tanh', 'tau', 'trunc']
3.141592653589793
'''
先自己创建一个calc.py 里面有add,fun的接口
def add(a,b):
return a + b
def fun(a,b):
if a> b:
在demo.py里加入calc模块
import calc
print(calc.fun(1313,34))
print(calc.add(12,45))
'''
1313
57
'''
举列子:
calc.py
def add(a,b):
return a + b
def fun(a,b):
if a> b:
return a
else:
return b
print(add(12,14))
dome.py
import calc
print(calc.fun(1313,34))
'''
26
1313
'''
当dome运行时 calc当中的print也运行了
解决如下:
calc.py
def add(a,b):
return a + b
def fun(a,b):
if a> b:
return a
else:
return b
if __name__ == '__main__':
print(add(12,14))
只有当calc.py主程序运行时才运行 print(add(12,14)) 而当dome.py运行calc不是主程序运行所以不会执行print(add(12,14))
举例子1:创建一个包--bao1 创建一个模块mudule1
在mudule1.py中有变量与函数如下:
a = 1000
def fun():
print("mudule")
现在怎么用包的变量与函数:
在dome目录下创建dome-bao.py如下:
import bao1.mudule1 as ma # ma 是 bao1.mudule1的别名
print(ma.a)
ma.fun()
'''
1000
mudule
'''
这样就可以调用包的变量与函数
总结:
#使用import 方式导入时 只能跟包名或者模块名
import bao1 #导入包
import calc #导入模块
#使用from---import 可以导入包,模块,函数,变量
from bao1 import mudule1 #导入模块
from bao1.mudule1 import a #导入变量
from bao1.mudule1 import fun #导入函数
在线安装:windows + R 输入cmd
pip install schedule 安装schedule模块
用pip list 指令可以查找安装哪些模块
import schedule
def job():
print('在')
schedule.every(3).seconds.do(job) #3S执行一次job函数
while True:
schedule.run_pending() #启动执行
在.py最上面加 #endcoding =gbk 改为gbk 默认是UTF- 8.
file = open('1.txt','r') # 读取当前目录下1.txt 的文件 file 相当于 1.txt 中文的要用gbK格式
print(file.readlines()) # 读取1.txt里所有内容 返回的是一个列表
file.close() #关闭文件
'''
['中国\n', '管理\n', '好\n', '接口']
'''
#把666.jpg 复制一份 777.jpg
src_file = open('666.jpg','rb')
target_file = open('777.jpg','wb')
target_file.write(src_file.read()) #边写边读
src_file.close()
target_file.close()
with open('1.txt','r') as file: #file取别名
print(file.read()) #不需要close 当with结束 自动关闭
# MyContentMgr 实现了特殊方法 __enter__与 __exit__称该类遵守上下文管理器协议
#MyContentMgr()实例对象称为上下文管理器
class MyContentMgr(object):
def __enter__(self):
print('enter方法被调用了')
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('exit方法被调用了')
def show(self):
print('show方法被调用了')
with MyContentMgr() as file:
file.show()
'''
enter方法被调用了
show方法被调用了
exit方法被调用了
即时show发生异常 exit也还是会被调用
以后对于文件操作可以用with语句 提高安全性
'''
#文件复制操作
with open('666.jpg','rb') as str_file:
with open('999.jpg','wb') as target_file:
target_file.write(str_file.read())
import os
#os.system('calc.exe') #打开计算器
#os.system('notepad.exe') #打开记事本
os.startfile('D:\\QQ\\Bin\\QQ.exe') #直接调用可执行文件
#os模块是和操作系统相关可以对操作系统进行操作
import os
print(os.getcwd()) #当前路径
lst = os.listdir('../dome') #获取dome目录下文件与目录
print(lst)
#os.mkdir('aaa') #当前路径创建目录
#os.makedirs('A/B/C') #创建多级目录
os.rmdir('aaa') #删除当前aaa目录
os.removedirs('A/B/C') #删除当前多级目录
os.chdir('D:\python_study\dome') #设置当前路径
import os.path
print(os.path.abspath('dome')) #获取dome目录的绝对路径
print(os.path.exists('../dome')) #判断doem是否存在
print(os.path.exists('../dome11'))
print(os.path.join('D:\python_study\dome\dome','dome-bao.py')) #目录与文件拼接
print(os.path.split('D:\python_study\dome\dome\dome-bao.py')) #分离文件与目录
print(os.path.splitext('dome-bao.py')) #文件名与后缀
print(os.path.basename('D:\python_study\dome\dome\dome-bao.py')) #从目录中提取文件名
print(os.path.dirname('D:\python_study\dome\dome\dome-bao.py')) #从路径提取目录
print(os.path.isdir('D:\python_study\dome\dome\dome-bao.py')) #是否为路径 有文件名所以不是
'''
运行结果:
D:\python_study\dome\dome
True
False
D:\python_study\dome\dome\dome-bao.py
('D:\\python_study\\dome\\dome', 'dome-bao.py')
('dome-bao', '.py')
dome-bao.py
D:\python_study\dome\dome
False
'''
#获取指定目录下的所有py文件
import os
path = os.getcwd() #获取当前路径
lis = os.listdir(path) #获取路径下的所有目录与文件
for filename in lis:
if filename.endswith('.py'): #如果以.py
print(filename)
#递归遍历路径下所有文件
path1 = os.getcwd()
yuanzu = os.walk(path1) #递归遍历路径下所有文件 并且返回的是一个元组
for dirpath,dirname,filename in yuanzu: # 元组里有 dirpath,dirname,filename
# print(dirpath)
# print(dirname)
# print(filename)
# print('------------------')
for dir in dirname:
print(os.path.join(dirpath,dir)) # dirpath下所有目录
for file in filename:
print(os.path.join(dirpath,file)) # dirpath下所有文件
print('------------')