一、元组
元组的特点:
1. 有序,可以重复,这一点和列表一样。
2. 元组中的元素不能修改,这一点非常重要,深度学习场景中很多参数、形状定义好了确保后续不能被修改。
很多流行的 ML/DL 库(如 TensorFlow, PyTorch, NumPy)在其 API 中都广泛使用了元组来表示形状、配置等。
可以看到,元组最重要的功能是在列表之上,增加了不可修改这个需求。
1、元组的创建
(1)
my_tuple1 = (1, 2, 3)
my_tuple2 = ('a', 'b', 'c')
my_tuple3 = (1, 'hello', 3.14, [4, 5]) # 可以包含不同类型的元素
print(my_tuple1)
print(my_tuple2)
print(my_tuple3)
输出:
(1, 2, 3)
('a', 'b', 'c')
(1, 'hello', 3.14, [4, 5])
(2)创建可省略括号
# 可以省略括号
my_tuple4 = 10, 20,'fifty' # 逗号是关键
print(my_tuple4)
print(type(my_tuple4))
输出:
(10, 20, 'fifty')
<class 'tuple'>
(3)创建空元祖
# 创建空元祖
enpty_tuple = ()
# 或使用 tuple() 函数
enpty_tuple2 = tuple()
print(enpty_tuple)
print(enpty_tuple2)
输出:
()
()
2、元组的常见用法
(1)元组的索引
# 元组的索引
my_tuple = (1, 4, 'a', 'v', 'g')
print(my_tuple[0]) # 第一个元素
print(my_tuple[2]) # 第三个元素
print(my_tuple[-1]) # 最后一个元素
输出:
1
a
g
(2)元组的切片
# 元组的切片
my_tuple = (0, 1, 2, 3, 4, 5, 6)
print(my_tuple[1:4]) # 输出从索引1到索引3的元素,左闭右开
print(my_tuple[:3]) # 输出从索引0到索引2的元素
print(my_tuple[3:]) # 输出从索引3到最后的元素
print(my_tuple[::2]) # 从第一个元素开始,每隔一个元素输出一个
输出:
(1, 2, 3)
(0, 1, 2)
(3, 4, 5, 6)
(0, 2, 4, 6)
(3)获取元祖长度
# 获取元祖长度
my_tuple = (1, 2, 3, 4)
print(len(my_tuple))
输出:
4
管道工程中pipeline类接收的是一个包含多个小元组的 列表 作为输入。
可以这样理解这个结构:
1. 列表 [ ]: 定义了步骤执行的先后顺序。Pipeline 会按照列表中的顺序依次处理数据。之所以用列表,是未来可以对这个列表进行修改。
2. 元组 ( ): 用于将每个步骤的名称和处理对象捆绑在一起。名称用于在后续访问或设置参数时引用该步骤,而对象则是实际执行数据转换或模型训练的工具。固定了操作名+操作。
不用字典因为字典是无序的。
利用管道训练自带的鸢尾花数据集:
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score
# 自带的鸢尾花数据集
# 1.加载数据
iris = load_iris()
X = iris.data
y = iris.target
# 2.划分训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3, random_state=42)
# 3.构建管道
# 管道按顺序执行以下步骤:
# - StandardScaler:标准化数据(移除均值并缩放到单位方差)
# - LogisticRegression: 逻辑回归分类器
pipeline = Pipeline([
('scaler', StandardScaler()),
('logreg', LogisticRegression())
])
# 4.训练模型
pipeline.fit(X_train, y_train)
# 5.预测
y_pred = pipeline.predict(X_test)
# 6.评估模型
accuracy = accuracy_score(y_test, y_pred)
print(f"模型在测试集上的准确率:{accuracy:.2f}")
输出:
模型在测试集上的准确率:1.00
二、可迭代对象
可迭代对象 (Iterable) 是 Python 中一个非常核心的概念。简单来说,一个可迭代对象就是指那些能够依次返回其成员(元素)的对象,让你可以在一个循环(比如 for 循环)中遍历它们。
Python 中有很多内置的可迭代对象,目前我们见过的类型包括:
-
序列类型 (Sequence Types):
-
list(列表)
-
tuple
(元组) -
str
(字符串) -
range
(范围)
-
-
集合类型 (Set Types):
-
set
(集合)
-
-
字典类型 (Mapping Types):
-
dict
(字典) - 迭代时返回键 (keys)
-
-
文件对象 (File objects)
-
生成器 (Generators)
-
迭代器 (Iterators) 本身
(1)列表(list)
# 列表(list)
print("迭代列表:")
my_list = [1, 2, 3, 4, 5]
for item in my_list:
print(item)
输出:
# 元组 (tuple)
print("迭代元祖:")
my_tuple = ('a', 'b', 'c')
for item in my_tuple:
print(item)
(2)元组 (tuple)
# 元组 (tuple)
print("迭代元祖:")
my_tuple = ('a', 'b', 'c')
for item in my_tuple:
print(item)
输出:
迭代元祖:
a
b
c
(3)字符串(str)
# 字符串(str)
print("迭代字符串:")
my_string = "hello"
for char in my_string:
print(char)
输出:
迭代字符串:
h
e
l
l
o
(4)range (范围)
# range (范围)
print("迭代 range:")
for number in range(5):
print(number)
输出:
迭代 range:
0
1
2
3
4
(5)集合类型(Set types)
# 集合类型(Set types)
# 集合(set) - 注意集合内元素是无序的,所以每次迭代的顺序可能不同
print("迭代集合:")
my_set = {3, 1, 4, 9, 6}
for item in my_set:
print(item)
输出:
迭代集合:
1
3
4
6
9
(6)字典(dict)
# 字典(dict) - 默认 迭代时返回键值对中的键(keys)
print("迭代字典 (默认迭代键):")
my_dict = {'name': 'alibaba', 'age': 18, 'city': 'beijing'}
for key in my_dict:
print(key)
# 迭代字典的值(values)
print("\n迭代字典的值(values):")
for value in my_dict.values():
print(value)
# 迭代字典的键值对(items)
print("\n迭代字典的键值对:")
for key, value in my_dict.items():
print(f"key:{key}, value:{value}")
输出:
迭代字典 (默认迭代键):
name
age
city
迭代字典的值(values):
alibaba
18
beijing
迭代字典的键值对:
key:name, value:alibaba
key:age, value:18
key:city, value:beijing
三、OS 模块
随着深度学习项目变得越来越大、数据量越来越多、代码结构越来越复杂,你会越来越频繁地用到 os 模块来管理文件、目录、路径,以及进行一些基本的操作系统交互。虽然深度学习的核心在于模型构建和训练,但数据和模型的有效管理是项目成功的关键环节,而 os 模块为此提供了重要的工具。
在简单的入门级项目中,你可能只需要使用 pd.read_csv() 加载数据,而不需要直接操作文件路径。但是,当你开始处理图像数据集、自定义数据加载流程、保存和加载复杂的模型结构时,os 模块就会变得非常有用。
好的代码组织和有效的文件管理是大型深度学习项目的基石。os 模块是实现这些目标的重要组成部分。
# os是系统内置模块,无需安装
import os
(1)获取当前工作目录
os.getcwd() # get current working directory
输出:
'c:\\Users\\acstdm\\Desktop\\python60-days-challenge-master\\py60-stud'
(2)获取当前工作目录下的文件列表
os.listdir() # list directory
(3)目录拼接
# 我们使用 r'' 原始字符串,而不用双反斜杠 \\,因为 \ 会涉及到转义问题
path_a = r'C:\Users\YourUsername\Documents' # 这个写法是写给python解释器看,他只会读取引号内的内容,不用在意r的存在会不会影响拼接
path_b = 'MyProjectData'
file = 'results.csv'
# 使用使用 os.path.join 将它们安全的拼接起来,会自动使用 Windows 的反斜杠 '\' 作为分隔符
file_path = os.path.join(path_a, path_b, file)
file_path
输出:
'C:\\Users\\YourUsername\\Documents\\MyProjectData\\results.csv'
(4)环境变量方法 os.environ
# os.environ 表现的像一个字典,包含所有的环境变量
os.environ
输出:
environ{'ALLUSERSPROFILE': 'C:\\ProgramData',
'APPCODE_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\appcode.vmoptions',
'APPDATA': 'C:\\Users\\acstdm\\AppData\\Roaming',
'APP_REGION': 'CN',
'ARMCONF': 'D:\\Software\\ADS\\ads.1.2\\BIN',
'ARMDLL': 'D:\\Software\\ADS\\ads.1.2\\BIN',
'ARMHOME': 'D:\\Software\\ADS\\ads.1.2',
'ARMINC': 'D:\\Software\\ADS\\ads.1.2\\INCLUDE',
'ARMLIB': 'D:\\Software\\ADS\\ads.1.2\\LIB',
'CATALINA_BASE': 'D:\\Software\\IDEA\\Javaee\\apache-tomcat-9.0.68',
'CATALINA_HOME': 'D:\\Software\\IDEA\\Javaee\\apache-tomcat-9.0.68',
'CHROME_CRASHPAD_PIPE_NAME': '\\\\.\\pipe\\crashpad_79100_IFMLDKMXKMRKKEYB',
'CLASSPATH': '.;E:\\Graduate\\jdk1.8\\lib;E:\\Graduate\\jdk1.8\\lib\\tools.jar',
'CLION_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\clion.vmoptions',
'CLOUDIDE_APISERVER_BASE_URL': 'https://api.marscode.cn',
'CLOUDIDE_PROVIDER_REGION': 'cn',
'COMMONPROGRAMFILES': 'C:\\Program Files\\Common Files',
'COMMONPROGRAMFILES(X86)': 'C:\\Program Files (x86)\\Common Files',
'COMMONPROGRAMW6432': 'C:\\Program Files\\Common Files',
'COMPUTERNAME': 'LAPTOP-62E2IUIP',
'COMSPEC': 'C:\\Windows\\system32\\cmd.exe',
'CONDA_DEFAULT_ENV': 'py60',
'CONDA_EXE': 'E:\\Software\\MiniConda\\Scripts\\conda.exe',
'CONDA_PREFIX': 'E:\\CondaEnvs\\envs\\py60',
'CONDA_PROMPT_MODIFIER': '(py60) ',
'CONDA_PYTHON_EXE': 'E:\\Software\\MiniConda\\python.exe',
'CONDA_ROOT': 'E:\\Software\\MiniConda',
'CONDA_SHLVL': '1',
'DATAGRIP_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\datagrip.vmoptions',
'DATASPELL_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\dataspell.vmoptions',
'DEVECOSTUDIO_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\devecostudio.vmoptions',
'DOKANLIBRARY2': 'C:\\Program Files\\Dokan\\DokanLibrary-2.0.6\\',
'DRIVERDATA': 'C:\\Windows\\System32\\Drivers\\DriverData',
'EFC_14492': '1',
'ELECTRON_FORCE_IS_PACKAGED': 'true',
'ELECTRON_RUN_AS_NODE': '1',
'ERLANG_HOME': 'E:\\WEB\\Erlang\\Erlang OTP',
'GATEWAY_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\gateway.vmoptions',
'GOLAND_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\goland.vmoptions',
'HOMEDRIVE': 'C:',
'HOMEPATH': '\\Users\\acstdm',
'ICUBE_APP_VERSION': '0.6.1',
'ICUBE_BUILD_TIME': '2025-06-05T11:40:46.728Z',
'ICUBE_BUILD_VERSION': '1.0.13859',
'ICUBE_CODEMAIN_SESSION': '7d7ace67-c926-436d-9a90-e1664cde5880',
'ICUBE_ELECTRON_PATH': 'E:\\Software\\TraeIDE\\Trae CN\\Trae CN.exe',
'ICUBE_ENABLE_MARSCODE_NLS': '1',
'ICUBE_IS_ELECTRON': 'true',
'ICUBE_MACHINE_ID': '91feaaaee2a586100cfedec42c84016daa524b833f4bb02ef3aa7a49e803337f',
'ICUBE_MARSCODE_VERSION': '1.0.13859',
'ICUBE_PRODUCT_PROVIDER': 'Yinli',
'ICUBE_PROVIDER': 'Yinli',
'ICUBE_PROXY_HOST': '127.0.0.1',
'ICUBE_PROXY_PORT': '51000',
'ICUBE_QUALITY': 'stable',
'ICUBE_USE_IPV6': 'false',
'ICUBE_VSCODE_VERSION': '1.98.2',
'IDEA_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\idea.vmoptions',
'JAVA_HOME': 'E:\\Graduate\\jdk1.8',
'JETBRAINSCLIENT_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\jetbrainsclient.vmoptions',
'JETBRAINS_CLIENT_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\jetbrains_client.vmoptions',
'JPY_INTERRUPT_EVENT': '1692',
'LOCALAPPDATA': 'C:\\Users\\acstdm\\AppData\\Local',
'LOGONSERVER': '\\\\LAPTOP-62E2IUIP',
'MAVEN_HOME': 'D:\\Software\\IDEA\\Javaee\\apache-maven-3.8.7',
'MYSQL_HOME': 'D:\\Software\\Mysql8\\mysql-8.0.32-winx64',
'NUMBER_OF_PROCESSORS': '20',
'NVM_HOME': 'E:\\Graduate\\Nvm\\nvm',
'NVM_SYMLINK': 'E:\\Graduate\\Nvm\\nvm\\nodejs',
'OLLAMA_MODELS': 'E:\\deepseek_model',
'ONEDRIVE': 'C:\\Users\\acstdm\\OneDrive',
'ORIGINAL_XDG_CURRENT_DESKTOP': 'undefined',
'OS': 'Windows_NT',
'PATH': 'e:\\CondaEnvs\\envs\\py60;E:\\CondaEnvs\\envs\\py60;E:\\CondaEnvs\\envs\\py60\\Library\\mingw-w64\\bin;E:\\CondaEnvs\\envs\\py60\\Library\\usr\\bin;E:\\CondaEnvs\\envs\\py60\\Library\\bin;E:\\CondaEnvs\\envs\\py60\\Scripts;E:\\CondaEnvs\\envs\\py60\\bin;E:\\Software\\MiniConda\\condabin;c:\\Users\\acstdm\\.trae-cn\\sdks\\workspaces\\27f99420\\versions\\node\\current;c:\\Users\\acstdm\\.trae-cn\\sdks\\versions\\node\\current;D:\\Software\\python\\Scripts;E:\\Graduate\\jdk1.8\\bin;D:\\Software\\ADS\\ads.1.2\\bin;C:\\ProgramData\\Oracle\\Java\\javapath;C:\\Windows\\system32;C:\\Windows;C:\\Windows\\System32\\Wbem;C:\\Windows\\System32\\WindowsPowerShell\\v1.0;C:\\Windows\\System32\\OpenSSH;C:\\Program Files (x86)\\NVIDIA Corporation\\PhysX\\Common;C:\\Program Files\\dotnet;D:\\Software\\Pycharm\\python;D:\\Software\\IDEA\\Javaee\\apache-tomcat-9.0.68\\bin;D:\\Software\\IDEA\\Javaee\\apache-maven-3.8.7\\bin;D:\\Software\\Mysql8\\mysql-8.0.32-winx64;D:\\Software\\Mysql8\\mysql-8.0.32-winx64\\bin;"D:\\Software\\IDEA\\Javaee\\apache-tomcat-9.0.68lib;D:\\Software\\IDEA\\Javaee\\apache-tomcat-9.0.68in";E:\\Software\\putty;E:\\WEB\\Redis;E:\\WEB\\Erlang\\Erlang OTP\\bin;E:\\WEB\\node;E:\\Graduate\\MongoDB\\Server\\4.2\\bin;E:\\Software\\Git\\Git\\bin;E:\\Software\\Git\\Git\\mingw64\\libexec\\git-core;E:\\Graduate\\Nvm\\nvm;E:\\Graduate\\Nvm\\nvm\\nodejs;C:\\Program Files\\nodejs;E:\\WEB\\node\\node_cache;E:\\Graduate\\jdk1.8\\jre\\bin;D:\\Software\\IDEA\\Javaee\\apache-maven-3.8.1\\bin;D:\\Software\\ffmpeg-7.1\\bin;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;E:\\Software\\MiniConda;E:\\Software\\MiniConda\\Scripts;E:\\Software\\MiniConda\\Library\\bin;E:\\Software\\Microsoft VS Code\\bin;e:\\Software\\TraeIDE\\Trae CN\\bin;C:\\Users\\acstdm\\AppData\\Local\\Programs\\Python\\Python38\\Scripts;C:\\Users\\acstdm\\AppData\\Local\\Programs\\Python\\Python38;D:\\Software\\python\\Scripts;D:\\Software\\python;C:\\Users\\acstdm\\AppData\\Local\\Microsoft\\WindowsApps;D:\\Software\\Pycharm\\PyCharm 2023.1\\bin;.;E:\\Graduate\\Nvm\\nvm;E:\\Graduate\\Nvm\\nvm\\nodejs;E:\\Software\\WebStrom\\WebStorm 2023.3.4\\bin;.;C:\\Users\\acstdm\\AppData\\Roaming\\npm;E:\\Software\\Ollama;e:\\Software\\TraeIDE\\Trae CN\\resources\\app\\bin\\lib',
'PATHEXT': '.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC',
'PHPSTORM_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\phpstorm.vmoptions',
'PROCESSOR_ARCHITECTURE': 'AMD64',
'PROCESSOR_IDENTIFIER': 'Intel64 Family 6 Model 154 Stepping 3, GenuineIntel',
'PROCESSOR_LEVEL': '6',
'PROCESSOR_REVISION': '9a03',
'PROGRAMDATA': 'C:\\ProgramData',
'PROGRAMFILES': 'C:\\Program Files',
'PROGRAMFILES(X86)': 'C:\\Program Files (x86)',
'PROGRAMW6432': 'C:\\Program Files',
'PROMPT': '(py60) $P$G',
'PSMODULEPATH': 'C:\\Program Files\\WindowsPowerShell\\Modules;C:\\Windows\\system32\\WindowsPowerShell\\v1.0\\Modules',
'PUBLIC': 'C:\\Users\\Public',
'PYCHARM': 'D:\\Software\\Pycharm\\PyCharm 2023.1\\bin;',
'PYCHARM_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\pycharm.vmoptions',
'PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING': '1',
'PYTHONIOENCODING': 'utf-8',
'PYTHONUNBUFFERED': '1',
'PYTHONUTF8': '1',
'PYTHON_FROZEN_MODULES': 'on',
'RIDER_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\rider.vmoptions',
'RUBYMINE_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\rubymine.vmoptions',
'SESSIONNAME': 'Console',
'SSL_CERT_FILE': 'E:\\CondaEnvs\\envs\\py60\\Library\\ssl\\cacert.pem',
'STUDIO_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\studio.vmoptions',
'SYSTEMDRIVE': 'C:',
'SYSTEMROOT': 'C:\\Windows',
'TEMP': 'C:\\Users\\acstdm\\AppData\\Local\\Temp',
'TMP': 'C:\\Users\\acstdm\\AppData\\Local\\Temp',
'USERDOMAIN': 'LAPTOP-62E2IUIP',
'USERDOMAIN_ROAMINGPROFILE': 'LAPTOP-62E2IUIP',
'USERNAME': 'acstdm',
'USERPROFILE': 'C:\\Users\\acstdm',
'VSCODE_BUILTIN_EXTENSIONS_PATH': 'e:\\Software\\TraeIDE\\Trae CN\\resources\\app\\extensions',
'VSCODE_CODE_CACHE_PATH': 'C:\\Users\\acstdm\\AppData\\Roaming\\Trae CN\\CachedData\\2c8f55ba31b096e35c341364330c33f4047fc6c3',
'VSCODE_CRASH_REPORTER_PROCESS_TYPE': 'extensionHost',
'VSCODE_CWD': 'E:\\Software\\TraeIDE\\Trae CN',
'VSCODE_ENV_PREPEND': 'PATH=c\\x3a\\Users\\acstdm\\.trae-cn\\sdks\\workspaces\\27f99420\\versions\\node\\current;c\\x3a\\Users\\acstdm\\.trae-cn\\sdks\\versions\\node\\current;',
'VSCODE_ESM_ENTRYPOINT': 'vs/workbench/api/node/extensionHostProcess',
'VSCODE_EXTENSIONS_PATH': 'c:\\Users\\acstdm\\.trae-cn\\extensions',
'VSCODE_HANDLES_UNCAUGHT_ERRORS': 'true',
'VSCODE_IPC_HOOK': '\\\\.\\pipe\\eae8c8fe-1.98.2-main-sock',
'VSCODE_NLS_CONFIG': '{"userLocale":"zh-cn","osLocale":"zh-cn","resolvedLanguage":"zh-cn","defaultMessagesFile":"E:\\\\Software\\\\TraeIDE\\\\Trae CN\\\\resources\\\\app\\\\out\\\\nls.zh-cn.messages.json","locale":"zh-cn","availableLanguages":{}}',
'VSCODE_PID': '79100',
'VSCODE_RUN_IN_ELECTRON': 'true',
'WEBIDE_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\webide.vmoptions',
'WEBSTORM': 'E:\\Software\\WebStrom\\WebStorm 2023.3.4\\bin;',
'WEBSTORM_VM_OPTIONS': 'E:\\BaiduNetdiskDownload\\video\\Crack\\jetbra\\vmoptions\\webstorm.vmoptions',
'WINDIR': 'C:\\Windows',
'XIUMASTER_V1_BUTTON_HOTKEY': '16777227',
'ZES_ENABLE_SYSMAN': '1',
'_CONDA_OLD_CHCP': '936',
'__CONDA_OPENSLL_CERT_FILE_SET': '"1"',
'PYDEVD_USE_FRAME_EVAL': 'NO',
'TERM': 'xterm-color',
'CLICOLOR': '1',
'FORCE_COLOR': '1',
'CLICOLOR_FORCE': '1',
'PAGER': 'cat',
'GIT_PAGER': 'cat',
'MPLBACKEND': 'module://matplotlib_inline.backend_inline',
'KMP_DUPLICATE_LIB_OK': 'True',
'KMP_INIT_AT_FORK': 'FALSE'}
(5) .items() 方法
# 使用 .items() 方法可以方便的同时获取变量名(键)和变量值,之前已经提过字典的items()方法
# os.environ是可迭代对象
for variable_name, value in os.environ.items():
# 打印变量名和对应的值
print(f"{variable_name}:{value}。")
# 打印总数
print(f"\n--- 总共检测到 {len(os.environ)} 个环境变量 ---")
输出:
ALLUSERSPROFILE:C:\ProgramData。
APPCODE_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\appcode.vmoptions。
APPDATA:C:\Users\acstdm\AppData\Roaming。
APP_REGION:CN。
ARMCONF:D:\Software\ADS\ads.1.2\BIN。
ARMDLL:D:\Software\ADS\ads.1.2\BIN。
ARMHOME:D:\Software\ADS\ads.1.2。
ARMINC:D:\Software\ADS\ads.1.2\INCLUDE。
ARMLIB:D:\Software\ADS\ads.1.2\LIB。
CATALINA_BASE:D:\Software\IDEA\Javaee\apache-tomcat-9.0.68。
CATALINA_HOME:D:\Software\IDEA\Javaee\apache-tomcat-9.0.68。
CHROME_CRASHPAD_PIPE_NAME:\\.\pipe\crashpad_79100_IFMLDKMXKMRKKEYB。
CLASSPATH:.;E:\Graduate\jdk1.8\lib;E:\Graduate\jdk1.8\lib\tools.jar。
CLION_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\clion.vmoptions。
CLOUDIDE_APISERVER_BASE_URL:https://api.marscode.cn。
CLOUDIDE_PROVIDER_REGION:cn。
COMMONPROGRAMFILES:C:\Program Files\Common Files。
COMMONPROGRAMFILES(X86):C:\Program Files (x86)\Common Files。
COMMONPROGRAMW6432:C:\Program Files\Common Files。
COMPUTERNAME:LAPTOP-62E2IUIP。
COMSPEC:C:\Windows\system32\cmd.exe。
CONDA_DEFAULT_ENV:py60。
CONDA_EXE:E:\Software\MiniConda\Scripts\conda.exe。
CONDA_PREFIX:E:\CondaEnvs\envs\py60。
CONDA_PROMPT_MODIFIER:(py60) 。
CONDA_PYTHON_EXE:E:\Software\MiniConda\python.exe。
CONDA_ROOT:E:\Software\MiniConda。
CONDA_SHLVL:1。
DATAGRIP_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\datagrip.vmoptions。
DATASPELL_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\dataspell.vmoptions。
DEVECOSTUDIO_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\devecostudio.vmoptions。
DOKANLIBRARY2:C:\Program Files\Dokan\DokanLibrary-2.0.6\。
DRIVERDATA:C:\Windows\System32\Drivers\DriverData。
EFC_14492:1。
ELECTRON_FORCE_IS_PACKAGED:true。
ELECTRON_RUN_AS_NODE:1。
ERLANG_HOME:E:\WEB\Erlang\Erlang OTP。
GATEWAY_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\gateway.vmoptions。
GOLAND_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\goland.vmoptions。
HOMEDRIVE:C:。
HOMEPATH:\Users\acstdm。
ICUBE_APP_VERSION:0.6.1。
ICUBE_BUILD_TIME:2025-06-05T11:40:46.728Z。
ICUBE_BUILD_VERSION:1.0.13859。
ICUBE_CODEMAIN_SESSION:7d7ace67-c926-436d-9a90-e1664cde5880。
ICUBE_ELECTRON_PATH:E:\Software\TraeIDE\Trae CN\Trae CN.exe。
ICUBE_ENABLE_MARSCODE_NLS:1。
ICUBE_IS_ELECTRON:true。
ICUBE_MACHINE_ID:91feaaaee2a586100cfedec42c84016daa524b833f4bb02ef3aa7a49e803337f。
ICUBE_MARSCODE_VERSION:1.0.13859。
ICUBE_PRODUCT_PROVIDER:Yinli。
ICUBE_PROVIDER:Yinli。
ICUBE_PROXY_HOST:127.0.0.1。
ICUBE_PROXY_PORT:51000。
ICUBE_QUALITY:stable。
ICUBE_USE_IPV6:false。
ICUBE_VSCODE_VERSION:1.98.2。
IDEA_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\idea.vmoptions。
JAVA_HOME:E:\Graduate\jdk1.8。
JETBRAINSCLIENT_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\jetbrainsclient.vmoptions。
JETBRAINS_CLIENT_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\jetbrains_client.vmoptions。
JPY_INTERRUPT_EVENT:1692。
LOCALAPPDATA:C:\Users\acstdm\AppData\Local。
LOGONSERVER:\\LAPTOP-62E2IUIP。
MAVEN_HOME:D:\Software\IDEA\Javaee\apache-maven-3.8.7。
MYSQL_HOME:D:\Software\Mysql8\mysql-8.0.32-winx64。
NUMBER_OF_PROCESSORS:20。
NVM_HOME:E:\Graduate\Nvm\nvm。
NVM_SYMLINK:E:\Graduate\Nvm\nvm\nodejs。
OLLAMA_MODELS:E:\deepseek_model。
ONEDRIVE:C:\Users\acstdm\OneDrive。
ORIGINAL_XDG_CURRENT_DESKTOP:undefined。
OS:Windows_NT。
PATH:e:\CondaEnvs\envs\py60;E:\CondaEnvs\envs\py60;E:\CondaEnvs\envs\py60\Library\mingw-w64\bin;E:\CondaEnvs\envs\py60\Library\usr\bin;E:\CondaEnvs\envs\py60\Library\bin;E:\CondaEnvs\envs\py60\Scripts;E:\CondaEnvs\envs\py60\bin;E:\Software\MiniConda\condabin;c:\Users\acstdm\.trae-cn\sdks\workspaces\27f99420\versions\node\current;c:\Users\acstdm\.trae-cn\sdks\versions\node\current;D:\Software\python\Scripts;E:\Graduate\jdk1.8\bin;D:\Software\ADS\ads.1.2\bin;C:\ProgramData\Oracle\Java\javapath;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0;C:\Windows\System32\OpenSSH;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\dotnet;D:\Software\Pycharm\python;D:\Software\IDEA\Javaee\apache-tomcat-9.0.68\bin;D:\Software\IDEA\Javaee\apache-maven-3.8.7\bin;D:\Software\Mysql8\mysql-8.0.32-winx64;D:\Software\Mysql8\mysql-8.0.32-winx64\bin;"D:\Software\IDEA\Javaee\apache-tomcat-9.0.68lib;D:\Software\IDEA\Javaee\apache-tomcat-9.0.68in";E:\Software\putty;E:\WEB\Redis;E:\WEB\Erlang\Erlang OTP\bin;E:\WEB\node;E:\Graduate\MongoDB\Server\4.2\bin;E:\Software\Git\Git\bin;E:\Software\Git\Git\mingw64\libexec\git-core;E:\Graduate\Nvm\nvm;E:\Graduate\Nvm\nvm\nodejs;C:\Program Files\nodejs;E:\WEB\node\node_cache;E:\Graduate\jdk1.8\jre\bin;D:\Software\IDEA\Javaee\apache-maven-3.8.1\bin;D:\Software\ffmpeg-7.1\bin;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;E:\Software\MiniConda;E:\Software\MiniConda\Scripts;E:\Software\MiniConda\Library\bin;E:\Software\Microsoft VS Code\bin;e:\Software\TraeIDE\Trae CN\bin;C:\Users\acstdm\AppData\Local\Programs\Python\Python38\Scripts;C:\Users\acstdm\AppData\Local\Programs\Python\Python38;D:\Software\python\Scripts;D:\Software\python;C:\Users\acstdm\AppData\Local\Microsoft\WindowsApps;D:\Software\Pycharm\PyCharm 2023.1\bin;.;E:\Graduate\Nvm\nvm;E:\Graduate\Nvm\nvm\nodejs;E:\Software\WebStrom\WebStorm 2023.3.4\bin;.;C:\Users\acstdm\AppData\Roaming\npm;E:\Software\Ollama;e:\Software\TraeIDE\Trae CN\resources\app\bin\lib。
PATHEXT:.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC。
PHPSTORM_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\phpstorm.vmoptions。
PROCESSOR_ARCHITECTURE:AMD64。
PROCESSOR_IDENTIFIER:Intel64 Family 6 Model 154 Stepping 3, GenuineIntel。
PROCESSOR_LEVEL:6。
PROCESSOR_REVISION:9a03。
PROGRAMDATA:C:\ProgramData。
PROGRAMFILES:C:\Program Files。
PROGRAMFILES(X86):C:\Program Files (x86)。
PROGRAMW6432:C:\Program Files。
PROMPT:(py60) $P$G。
PSMODULEPATH:C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules。
PUBLIC:C:\Users\Public。
PYCHARM:D:\Software\Pycharm\PyCharm 2023.1\bin;。
PYCHARM_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\pycharm.vmoptions。
PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING:1。
PYTHONIOENCODING:utf-8。
PYTHONUNBUFFERED:1。
PYTHONUTF8:1。
PYTHON_FROZEN_MODULES:on。
RIDER_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\rider.vmoptions。
RUBYMINE_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\rubymine.vmoptions。
SESSIONNAME:Console。
SSL_CERT_FILE:E:\CondaEnvs\envs\py60\Library\ssl\cacert.pem。
STUDIO_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\studio.vmoptions。
SYSTEMDRIVE:C:。
SYSTEMROOT:C:\Windows。
TEMP:C:\Users\acstdm\AppData\Local\Temp。
TMP:C:\Users\acstdm\AppData\Local\Temp。
USERDOMAIN:LAPTOP-62E2IUIP。
USERDOMAIN_ROAMINGPROFILE:LAPTOP-62E2IUIP。
USERNAME:acstdm。
USERPROFILE:C:\Users\acstdm。
VSCODE_BUILTIN_EXTENSIONS_PATH:e:\Software\TraeIDE\Trae CN\resources\app\extensions。
VSCODE_CODE_CACHE_PATH:C:\Users\acstdm\AppData\Roaming\Trae CN\CachedData\2c8f55ba31b096e35c341364330c33f4047fc6c3。
VSCODE_CRASH_REPORTER_PROCESS_TYPE:extensionHost。
VSCODE_CWD:E:\Software\TraeIDE\Trae CN。
VSCODE_ENV_PREPEND:PATH=c\x3a\Users\acstdm\.trae-cn\sdks\workspaces\27f99420\versions\node\current;c\x3a\Users\acstdm\.trae-cn\sdks\versions\node\current;。
VSCODE_ESM_ENTRYPOINT:vs/workbench/api/node/extensionHostProcess。
VSCODE_EXTENSIONS_PATH:c:\Users\acstdm\.trae-cn\extensions。
VSCODE_HANDLES_UNCAUGHT_ERRORS:true。
VSCODE_IPC_HOOK:\\.\pipe\eae8c8fe-1.98.2-main-sock。
VSCODE_NLS_CONFIG:{"userLocale":"zh-cn","osLocale":"zh-cn","resolvedLanguage":"zh-cn","defaultMessagesFile":"E:\\Software\\TraeIDE\\Trae CN\\resources\\app\\out\\nls.zh-cn.messages.json","locale":"zh-cn","availableLanguages":{}}。
VSCODE_PID:79100。
VSCODE_RUN_IN_ELECTRON:true。
WEBIDE_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\webide.vmoptions。
WEBSTORM:E:\Software\WebStrom\WebStorm 2023.3.4\bin;。
WEBSTORM_VM_OPTIONS:E:\BaiduNetdiskDownload\video\Crack\jetbra\vmoptions\webstorm.vmoptions。
WINDIR:C:\Windows。
XIUMASTER_V1_BUTTON_HOTKEY:16777227。
ZES_ENABLE_SYSMAN:1。
_CONDA_OLD_CHCP:936。
__CONDA_OPENSLL_CERT_FILE_SET:"1"。
PYDEVD_USE_FRAME_EVAL:NO。
TERM:xterm-color。
CLICOLOR:1。
FORCE_COLOR:1。
CLICOLOR_FORCE:1。
PAGER:cat。
GIT_PAGER:cat。
MPLBACKEND:module://matplotlib_inline.backend_inline。
KMP_DUPLICATE_LIB_OK:True。
KMP_INIT_AT_FORK:FALSE。
--- 总共检测到 137 个环境变量 ---
1、目录树
os.walk( ) 是 Python os 模块中一个非常有用的函数,它用于遍历(或称“行走”)一个目录树。
核心功能:
os.walk(top, topdown=True, οnerrοr=None, followlinks=False) 会为一个目录树生成文件名。对于树中的每个目录(包括 top 目录本身),它会 yield(产生)一个包含三个元素的元组 (tuple):
(dirpath, dirnames, filenames)
- dirpath: 一个字符串,表示当前正在访问的目录的路径。
- dirnames: 一个列表(list),包含了 dirpath 目录下所有子目录的名称(不包括 . 和 ..)。
- filenames: 一个列表(list),包含了 dirpath 目录下所有非目录文件的名称。
总结:
os.walk
会首先访问起始目录 (my_project
),然后它会选择第一个子目录 (data
) 并深入进去,访问 data
目录本身,然后继续深入它的子目录 (processed
-> raw
)。只有当 data
分支下的所有内容都被访问完毕后,它才会回到 my_project
这一层,去访问下一个子目录 (src
),并对 src
分支重复深度优先的探索。
它不是按层级(先访问所有第一层,再访问所有第二层)进行的,而是按分支深度进行的。这种策略被称之为深度优先。
import os
start_directory = os.getcwd() # 假设这个目录在当前工作目录下
print(f" --- 开始遍历目录:{start_directory} ---")
for dirpath, dirnames, filenames in os.walk(start_directory):
print(f"当前访问目录(dirpath): {dirpath}")
print(f"子目录列表(dirnames): {dirnames}")
print(f"文件列表(filenames): {filenames}")
输出:
--- 开始遍历目录:c:\Users\acstdm\Desktop\python60-days-challenge-master\py60-stud ---
当前访问目录(dirpath): c:\Users\acstdm\Desktop\python60-days-challenge-master\py60-stud
子目录列表(dirnames): ['pictures']
文件列表(filenames): ['bike.csv', 'data.csv', 'data.xlsx', 'DAY 1-3.ipynb', 'DAY 10-机器学习建模与评估.ipynb', 'DAY 11-常见调参方式.ipynb', 'DAY 12-启发式算法.ipynb', 'DAY 13-不平衡数据处理.ipynb', 'DAY 14-SHAP图的绘制.ipynb', 'DAY 15-复习日.ipynb', 'DAY 16-数组的常见操作.ipynb', 'DAY 17-常见聚类算法.ipynb', 'DAY 18-推测聚类后簇的含义.ipynb', 'DAY 19-特征筛选算法.ipynb', 'DAY 20-奇异值分解.ipynb', 'DAY 21-常见降维算法.ipynb', 'DAY 22-复习日.ipynb', 'DAY 23-pipeline管道.ipynb', 'DAY 24-元组和OS模块.ipynb', 'DAY 4-缺失值的处理.ipynb', 'DAY 5-独热编码.ipynb', 'DAY 6-描述性统计.ipynb', 'DAY 7 复习日.ipynb', 'DAY 8-标签编码与连续变量处理.ipynb', 'DAY 9-热力图和子图的绘制.ipynb', 'heart.csv', '测试.py']
当前访问目录(dirpath): c:\Users\acstdm\Desktop\python60-days-challenge-master\py60-stud\pictures
子目录列表(dirnames): []
文件列表(filenames): ['归一化.png', '标准化.png']
介绍这个方法,是因为在你面临云服务器时候,往往只能通过命令行和代码块中函数来查看,无法像电脑一样在界面中查看,所以,这个方法可以让你直接在代码块中查看。