python是一门简单的编程语言:
1、python设计之初,设计者就是为了一门简单的编程语言
2、提供了大量的内置模块,封装了很多有用的功能
3、存在着大量的第三方模块
内置模块:
什么是模块(module): 当做一个xxx.py就是一个模块
包(package):就是存放模块的文件夹
内置模块:就是官方已经提供好了,内置到python解释器中的模块
导包方式:
import xxx
import xxx.xxx.xxx
import xxx.xxx.xx as alias
from xxx.xxx.xx import xx
常见的几个模块
- random:
dir(random)
常见方法: ‘betavariate’, ‘choice’, ‘choices’, ‘expovariate’, ‘gammavariate’, ‘gauss’, getrandbits’, ‘getstate’, ‘lognormvariate’, ‘normalvariate’, ‘paretovariate’, ‘randint’, ‘random’, ‘randrange’, ‘sample’, ‘seed’, ‘setstate’, ‘shuffle’, ‘triangular’, ‘uniform’, ‘vonmisesvariate’, ‘weibullvariate’]
|-- randint(a, b) # 返回一个随机整数, 返回[a, b]
|-- choice(seq) # 随机在序列中获取一个值
|-- random() # [0, 1)随机数
|-- randrange(a, b) # 返回一个随机整数, 返回[a, b)
|-- shuffle(seq) # 随机洗牌
|-- uniform(a, b) # 返回一个随机数, 返回[a, b)
- math:
‘acos’, ‘acosh’, ‘asin’, ‘asinh’, ‘atan’, ‘atan2’, ‘atanh’, ‘ceil’, ‘comb’, ‘copysign’, ‘cos’, ‘cosh’, ‘degrees’, ‘dist’, ‘e’, ‘erf’, ‘erfc’, ‘exp’, ‘expm1’, ‘fabs’, ‘factorial’, ‘floor’, ‘fmod’, ‘frexp’, ‘fsum’, ‘gamma’, ‘gcd’, ‘hypot’, ‘inf’, ‘isclose’,‘isfinite’, ‘isinf’, ‘isnan’, ‘isqrt’, ‘ldexp’, ‘lgamma’, ‘log’, ‘log10’, ‘log1p’, ‘log2’, ‘modf’, ‘nan’, ‘perm’, ‘pi’, ‘pow’, ‘prod’, ‘radians’, ‘remainder’, ‘sin’, ‘sinh’, ‘sqrt’, ‘tan’, ‘tanh’, ‘tau’, ‘trunc’]
|-- e # 自然常数
|-- pi # 圆周率
|-- ceil() # 向上取整
|-- floor() # 向下取整
|--
-
os:
主要操作操作系统的文件系统:
‘abc’, ‘abort’, ‘access’, ‘add_dll_directory’, ‘altsep’, ‘chdir’,‘chmod’, ‘close’, ‘closerange’, ‘cpu_count’, ‘curdir’, ‘defpath’, ‘device_encoding’, ‘devnull’, ‘dup’, ‘dup2’, ‘environ’, ‘error’, ‘execl’, ‘execle’, ‘execlp’, ‘execlpe’, ‘execv’, ‘execve’, ‘execvp’, ‘execvpe’, ‘extsep’, ‘fdopen’, ‘fsdecode’, ‘fsencode’, ‘fspath’, ‘fstat’, ‘fsync’, ‘ftruncate’, ‘get_exec_path’, ‘get_handle_inheritable’, ‘get_inheritable’, ‘get_terminal_size’, ‘getcwd’, ‘getcwdb’, ‘getenv’, ‘getlogin’, ‘getpid’, ‘getppid’, ‘isatty’, ‘kill’, ‘linesep’, ‘link’, ‘listdir’, ‘lseek’, ‘lstat’,‘makedirs’, ‘mkdir’, ‘name’, ‘open’, ‘pardir’, ‘path’, ‘pathsep’, ‘pipe’, ‘popen’, ‘putenv’, ‘read’, ‘readlink’, ‘remove’,‘removedirs’, ‘rename’, ‘renames’, ‘replace’, ‘rmdir’, ‘scandir’, ‘sep’, ‘set_handle_inheritable’, ‘set_inheritable’, ‘spawnl’, ‘spawnle’, ‘spawnv’, ‘spawnve’, ‘st’, ‘startfile’, ‘stat’, ‘stat_result’, ‘statvfs_result’, ‘strerror’,‘supports_bytes_environ’, ‘supports_dir_fd’, ‘supports_effective_ids’, ‘supports_fd’, ‘supports_follow_symlinks’, ‘symlink’, ‘sys’, ‘system’, ‘terminal_size’, ‘times’,‘times_result’, ‘truncate’, ‘umask’, ‘uname_result’, ‘unlink’,‘urandom’, ‘utime’, ‘waitpid’, ‘walk’, ‘write’
|-- chdir() # 修改工作目录
|-- curdir # 获取当前目录,获取的是相对路径
|-- chmod # 修改权限
|-- cpu_count # 获取CPU的线程数
|-- getpid() # 获取当前进程编号
|-- getppid() # 获取当前进程编号
|-- listdir([url]) # 遍历路径下的所有文件的名称
|-- mkdir() # 创建文件夹
|-- makedirs() # 级联创建文件夹,可以创建多个
|-- rmdir() # 删除文件夹
|-- rename() # 重命名
|-- renames() #
|-- remove() # 删除文件
|-- removedirs() #
-
os.path
|-- abspath(url) # 获取url的绝对路径
|-- basename(url) # 获取url的文件名称
|-- dirname(url) # 获取url的主目录 -
uuid:
uuid.uuid4().hex
-
sys
|-- argv # 参数列表
|-- exit() # 退出系统
|-- getrecursionlimit() # 获取递归的最深层数
|-- setrecursionlimit() # 设置递归的最深层数
|-- getrefcount() # 获取对象引用计数的数量
遍历磁盘
import os
from os import path
def scann_files(url):
filenames = os.listdir(url)
for file in filenames:
real_url = os.join(url, file) #url + os.sep + file
print("真实路径是:", real_url)
if path.isfile(real_url):
print(path.abspath(real_url))
elif path.isdir(real_url):
scann_files(real_url)
if __name__ == '__main__':
scann_files("")