原视频:B站 BV1qa411c7tb 16-24
计算机的函数概念
函数:内置函数、标准函数库
import math
a=math.sqrt(2)
print(a)
from math import sqrt
b=sqrt(2)
print(b)
import random
a=random.randint(0,6)
#生成0到6之间的整数
print(a)
函数的定义
def hello_user(user_name):
print("hello "+user_name)
hello_user("ZhangSan")
def test_grade(name,grade):
print(name+'的成绩是'+grade+'。')
test_grade('张三','87')
def add(a,b):
sum=a+b
return sum
value=add(4,8)
print(value)
类
dog_x=0
cat_x=0
def dog_move():
global dog_x
dog_x=dog_x+10
def cat_move():
global cat_x
cat_x=cat_x+10
user_input=input()
if user_input=="move":
print('dog:{},cat:{}'.format(dog_x,cat_x))
dog_move()
cat_move()
print('dog:{},cat:{}'.format(dog_x,cat_x))
命名类时要单词首字母大写,用驼峰命名法
class Animal():
def __init__(self):
self.x=0
def move(self):
self.x=self.x+10
dog=Animal()
cat=Animal()
user_input=input()
if user_input=="move":
dog.move()
cat.move()
print('dog:',dog.x)
print('cat:',cat.x)
class Student:
def __init__(self,name):
self.name=name
def say_hi(self):
print("Hi!I'm {}".format(self.name))
lilei=Student('lilei')
lilei.say_hi()
zhangsan=Student('zhangsan')
zhangsan.say_hi()
OS模块
python标准库
和操作系统有关的操作
创建、移动、复制文件和文件夹
文件路径和名称处理
https://docs.python.org/zh-cn/3/library/os.html
import os
print(os.getcwd())
print(os.listdir())
/斜杠
\反斜杠
import os
print(os.path.join('MyProjects','AI'))
scandir方法返回了一个DirEntry迭代器对象
import os
for file in os.scandir():
print(file.name,file.stat())
st_size 文件大小(单位:bytes)
import os
for file in os.scandir():
print(file.name,file.stat().st_size)
st_atime:文件的最近访问时间
st_mtime:文件最近修改时间
st_ctime:windows下表示创建时间
st_birthtime:Mac/linux下表示创建时间
import os
import time
for file in os.scandir():
print(file.name,time.ctime(file.stat().st_atime))
编写python程序,要求
1.找出当前目录下所有非文件夹的文件
2.统计其中包含有“python”单词的文件数量
3.不区分大小写,即大写和小写包括在内
4.输出文件数量
import os
pythonfile=0
for file in os.scandir():
if file.is_dir()==0:
print(file.name)
str1=file.name
str1=str1.lower()
if str1.find("python")!=-1:
pythonfile=pythonfile+1
print(pythonfile)
遍历、搜索文件及查询文件信息
把文件夹下的所有文件都找出来
os.walk(指定的绝对路径或相对路径)
import os
for dirpath,dirname,files in os.walk('./'):
print(f'发现文件夹:{dirpath}')
print(files)
.startswith()和.endswith()
判断字符串是否由txt结尾,以a开头
import glob
print(glob.glob('*.txt'))
*匹配所有
?匹配任何单个字符
用之前所学的知识写
import os
for file in os.scandir():
if (file.is_dir()==0)&(file.name.find('.py')!=-1):
print(file.name)
把隐藏在文件夹多层下面的文件都找出来
import glob
print(glob.glob('**/*.txt',recursive=True))
用**表示任意层文件或文件夹
recursive=True会不断进入文件夹内
fnmatch模块
用来匹配文件名
datetime模块
import datetime
that_time=datetime.datetime.fromtimestamp(1627764428)
print(that_time)
编写python程序,要求
1.搜索整个文件夹,包括文件夹内的所有文件夹
2.筛选体积大于100M的压缩包zip文件(我实际为小于2B的txt)
3.筛选这些文件中日期早于自定义前的
4.输出这些文件的路径
import os
import time
compare_time="2021-9-15 15:15:15"
compare_time_list=time.strptime(compare_time,"%Y-%m-%d %H:%M:%S")
compare_time_nuix= int(time.mktime(compare_time_list))
#print(compare_time_nuix)
for dirpath,dirname,files in os.walk('./'):
for file in os.scandir(dirpath):
if (file.stat().st_size>2)&(file.name.endswith(".txt"))&(file.stat().st_atime>compare_time_nuix):
print(dirpath,file.name)