当前位置: 首页 > news >正文

聊城网站推广动态花店网站开发设计的项目结构

聊城网站推广动态,花店网站开发设计的项目结构,小程序维护费用一般多少钱,wordpress案例站点目录 一、元组 1. 通俗解释 2. 元组的特点 3. 元组的创建 4. 元组的常见用法 二、可迭代对象 1. 定义 2. 示例 3. 通俗解释 三、OS 模块 1. 通俗解释 2. 目录树 四、作业 1. 准备工作 2. 实战代码示例​ 3. 重要概念解析 一、元组 是什么​​#xff1a;一种…目录 一、元组 1. 通俗解释 2. 元组的特点 3. 元组的创建 4. 元组的常见用法 二、可迭代对象 1. 定义 2. 示例 3. 通俗解释 三、OS 模块 1. 通俗解释 2. 目录树 四、作业 1. 准备工作 2. 实战代码示例​ 3. 重要概念解析 一、元组 是什么​​一种​​不可修改的有序数据容器​​类似列表但创建后元素不能增删改。​​特点​​ ✅ 元素不可变适合保存固定参数如模型输入形状、超参数组合。✅ 可包含不同类型数据如数字、字符串、列表。 ​​应用场景​​ 深度学习库如PyTorch/TensorFlow中表示形状input_shape (224, 224, 3)。机器学习流水线Pipeline中捆绑步骤名称和操作 pipeline Pipeline([(scaler, StandardScaler()), (clf, LogisticRegression())]) 1. 通俗解释 元组Tuple—— 不能改的“固定清单”​ 像啥​​想象你写了一张购物清单但用胶水封死了不能涂改、不能加东西。这就是元组​​有啥用​​ ​​防手滑​​比如深度学习中模型的输入尺寸比如图片必须是 224x224一旦设定就不能中途乱改用元组存着最安全。​​捆绑定死​​比如机器学习流水线Pipeline中把步骤名称如“缩放数据”和对应的工具如StandardScaler()绑在一起防止步骤被篡改。 ​​举个栗子​​ 2. 元组的特点 有序可以重复这一点和列表一样元组中的元素不能修改这一点非常重要深度学习场景中很多参数、形状定义好了确保后续不能被修改。 很多流行的 ML/DL 库如 TensorFlow, PyTorch, NumPy在其 API 中都广泛使用了元组来表示形状、配置等。 可以看到元组最重要的功能是在列表之上增加了不可修改这个需求 3. 元组的创建 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])# 可以省略括号 my_tuple4 10, 20, thirty # 逗号是关键 print(my_tuple4) print(type(my_tuple4)) # 看看它的类型 (10, 20, thirty) class tuple# 创建空元组 empty_tuple () # 或者使用 tuple() 函数 empty_tuple2 tuple() print(empty_tuple) print(empty_tuple2) () ()4. 元组的常见用法 # 元组的索引 my_tuple (P, y, t, h, o, n) print(my_tuple[0]) # 第一个元素 print(my_tuple[2]) # 第三个元素 print(my_tuple[-1]) # 最后一个元素 P t n# 元组的切片 my_tuple (0, 1, 2, 3, 4, 5) print(my_tuple[1:4]) # 从索引 1 到 3 (不包括 4) print(my_tuple[:3]) # 从开头到索引 2 print(my_tuple[3:]) # 从索引 3 到结尾 print(my_tuple[::2]) # 每隔一个元素取一个 (1, 2, 3) (0, 1, 2) (3, 4, 5) (0, 2, 4)# 元组的长度获取 my_tuple (1, 2, 3) print(len(my_tuple)) 3管道工程中pipeline类接收的是一个包含多个小元组的 列表 作为输入。 可以这样理解这个结构 列表 []: 定义了步骤执行的先后顺序。Pipeline 会按照列表中的顺序依次处理数据。之所以用列表是未来可以对这个列表进行修改。元组 (): 用于将每个步骤的名称和处理对象捆绑在一起。名称用于在后续访问或设置参数时引用该步骤而对象则是实际执行数据转换或模型训练的工具。固定了操作名操作 不用字典因为字典是无序的。 from sklearn.datasets import load_iris from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler from sklearn.linear_model import LogisticRegression from sklearn.pipeline import Pipeline 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_size0.3, random_state42)# 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二、可迭代对象 1. 定义 是什么​​能用 for 循环遍历的对象。​​常见类型​​ 类型遍历内容示例列表元素for num in [1, 2, 3]:字典键默认或键值对for key, value in dict.items():字符串每个字符for char in hello:文件路径目录树用os.walk()遍历数据集文件夹中的图片 可迭代对象 (Iterable) 是 Python 中一个非常核心的概念。简单来说一个可迭代对象就是指那些能够一次返回其成员元素的对象让你可以在一个循环比如 for 循环中遍历它们。 Python 中有很多内置的可迭代对象目前我们见过的类型包括 序列类型 (Sequence Types): list (列表)tuple (元组)str (字符串)range (范围) 集合类型 (Set Types): set (集合) 字典类型 (Mapping Types): dict (字典) - 迭代时返回键 (keys) 文件对象 (File objects) 生成器 (Generators) 迭代器 (Iterators) 本身 2. 示例 # 列表 (list) print(迭代列表:) my_list [1, 2, 3, 4, 5] for item in my_list:print(item) 迭代列表: 1 2 3 4 5# 元组 (tuple) print(迭代元组:) my_tuple (a, b, c) for item in my_tuple:print(item) 迭代元组: a b c# 字符串 (str) print(迭代字符串:) my_string hello for char in my_string:print(char) 迭代字符串: h e l l o# range (范围) print(迭代 range:) for number in range(5): # 生成 0, 1, 2, 3, 4print(number) 迭代 range: 0 1 2 3 4# 集合类型 (Set Types)# 集合 (set) - 注意集合是无序的所以每次迭代的顺序可能不同 print(迭代集合:) my_set {3, 1, 4, 1, 5, 9} for item in my_set:print(item) 迭代集合: 1 3 4 5 9# 字典 (dict) - 默认迭代时返回键 (keys) print(迭代字典 (默认迭代键):) my_dict {name: Alice, age: 30, city: Singapore} for key in my_dict:print(key) 迭代字典 (默认迭代键): name age city# 迭代字典的值 (values) print(迭代字典的值:) for value in my_dict.values():print(value) 迭代字典的值: Alice 30 Singapore# 迭代字典的键值对 (items) print(迭代字典的键值对:) for key, value in my_dict.items(): # items方法很好用print(fKey: {key}, Value: {value})迭代字典的键值对: Key: name, Value: Alice Key: age, Value: 30 Key: city, Value: Singapore3. 通俗解释 可迭代对象Iterable—— “能一个一个拿的东西”​​ ​​像啥​​就像你的书包里面有很多本书你可以一本一本拿出来看。能让你“一个一个拿”的东西都叫可迭代对象。​​常见的“书包”类型​​ ​​列表/元组​​直接拿里面的每个元素比如数字、文字。​​字符串​​一个一个拿字符比如“hello”拆成 h, e, l, l, o。​​字典​​默认拿的是钥匙key但也可以同时拿钥匙和对应的值像查字典时先找词条再看解释。 ​​举个栗子 # 遍历字典拿“钥匙”和“值” params {学习率: 0.01, 训练轮次: 100} for key, value in params.items():print(f参数 {key} 的值是 {value}) # 输出 # 参数 学习率 的值是 0.01 # 参数 训练轮次 的值是 100 三、OS 模块 1. 通俗解释 OS模块 —— 帮你“整理电脑文件”的工具包​​ ​​像啥​​你电脑里有一堆乱糟糟的文件夹和文件OS模块就像你的私人助手帮你自动整理。 三大神器 ①路径拼接​​避免手写路径出错比如Windows用\Mac用/自动帮你处理。 # 把路径拼成 数据/图片/猫 path os.path.join(数据, 图片, 猫) ​​②文件夹遍历​​一键扫描某个文件夹下的所有文件包括子文件夹适合批量处理数据。 # 遍历数据集文件夹里的所有图片 for root, dirs, files in os.walk(数据集):for file in files:if file.endswith(.jpg):print(f找到图片{os.path.join(root, file)}) ③环境变量​​查看或设置系统参数比如告诉程序用哪块GPU。 # 设置使用第一块GPU os.environ[CUDA_VISIBLE_DEVICES] 0 随着深度学习项目变得越来越大、数据量越来越多、代码结构越来越复杂你会越来越频繁地用到 os 模块来管理文件、目录、路径以及进行一些基本的操作系统交互。虽然深度学习的核心在于模型构建和训练但数据和模型的有效管理是项目成功的关键环节而 os 模块为此提供了重要的工具。 在简单的入门级项目中你可能只需要使用 pd.read_csv() 加载数据而不需要直接操作文件路径。但是当你开始处理图像数据集、自定义数据加载流程、保存和加载复杂的模型结构时os 模块就会变得非常有用。 好的代码组织和有效的文件管理是大型深度学习项目的基石。os 模块是实现这些目标的重要组成部分。 import os # os是系统内置模块无需安装 获取当前工作目录 os.getcwd() # get current working directory 获取当前工作目录的绝对路径 c:\\Users\\PC\\Desktop\\python训练营 获取当前工作目录下的文件列表 os.listdir() # list directory 获取当前工作目录下的文件列表 [day24 元组和OS模块.ipynb, 演示1] # 我们使用 r 原始字符串这样就不需要写双反斜杠 \\因为\会涉及到转义问题 path_a rC:\Users\YourUsername\Documents # r这个写法是写给python解释器看他只会读取引号内的内容不用在意r的存在会不会影响拼接 path_b MyProjectData file results.csv# 使用 os.path.join 将它们安全地拼接起来os.path.join 会自动使用 Windows 的反斜杠 \ 作为分隔符 file_path os.path.join(path_a , path_b, file)file_path C:\\Users\\YourUsername\\Documents\\MyProjectData\\results.csv 环境变量方法 # os.environ 表现得像一个字典包含所有的环境变量 os.environ environ{ALLUSERSPROFILE: C:\\ProgramData,AMOSAPP: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26,AMOSDOCS: C:\\Users\\PC\\Documents\\AmosDevelopment\\Amos\\26,AMOSEXAMPLES: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26\\Examples\\English,AMOSLOGS: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26\\Logs,AMOSPLUGINS: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26\\Plugins,AMOSPROGRAM: D:\\Jupyter\\SEM\\Amos26,AMOSTEMPLATES: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26\\Templates\\English,AMOSTUTORIAL: C:\\Users\\PC\\AppData\\Local\\AmosDevelopment\\Amos\\26\\Tutorial\\English,APPDATA: C:\\Users\\PC\\AppData\\Roaming,CHROME_CRASHPAD_PIPE_NAME: \\\\.\\pipe\\crashpad_2824_TQDHDSUOXXPVVCJP,COMMONPROGRAMFILES: C:\\Program Files\\Common Files,COMMONPROGRAMFILES(X86): C:\\Program Files (x86)\\Common Files,COMMONPROGRAMW6432: C:\\Program Files\\Common Files,COMPUTERNAME: DESKTOP-N2RLOJJ,COMSPEC: C:\\WINDOWS\\system32\\cmd.exe,CONDA_DEFAULT_ENV: vs,CONDA_EXE: D:\\Anaconda\\Scripts\\conda.exe,CONDA_PREFIX: D:\\Anaconda\\envs\\vs,CONDA_PROMPT_MODIFIER: (vs) ,CONDA_PYTHON_EXE: D:\\Anaconda\\python.exe,CONDA_ROOT: D:\\Anaconda,CONDA_SHLVL: 1,CUDA_PATH: C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.3,CUDA_PATH_V11_3: C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.3,CUDA_PATH_V12_1: C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.1,CUDA_VISIBLE_DEVICES: 0,DRIVERDATA: C:\\Windows\\System32\\Drivers\\DriverData,ELECTRON_RUN_AS_NODE: 1,FPS_BROWSER_APP_PROFILE_STRING: Internet Explorer,FPS_BROWSER_USER_PROFILE_STRING: Default,HF_HOME: E:\\cache\\huggingface_cache,HOMEDRIVE: C:,HOMEPATH: \\Users\\PC,JPY_INTERRUPT_EVENT: 4256,LOCALAPPDATA: C:\\Users\\PC\\AppData\\Local,LOGONSERVER: \\\\DESKTOP-N2RLOJJ,NUMBER_OF_PROCESSORS: 24,NVCUDASAMPLES11_3_ROOT: C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v11.3,NVCUDASAMPLES_ROOT: C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v11.3,NVTOOLSEXT_PATH: C:\\Program Files\\NVIDIA Corporation\\NvToolsExt\\,OLLAMA_MODELS: E:\\ollamamodels,ONEDRIVE: C:\\Users\\PC\\OneDrive,ORIGINAL_XDG_CURRENT_DESKTOP: undefined,OS: Windows_NT,PATH: d:\\Anaconda\\envs\\vs;D:\\Anaconda\\envs\\vs;D:\\Anaconda\\envs\\vs\\Library\\mingw-w64\\bin;D:\\Anaconda\\envs\\vs\\Library\\usr\\bin;D:\\Anaconda\\envs\\vs\\Library\\bin;D:\\Anaconda\\envs\\vs\\Scripts;D:\\Anaconda\\envs\\vs\\bin;D:\\Anaconda\\condabin;C:\\Program Files (x86)\\Common Files\\Oracle\\Java\\javapath;c:\\Users\\PC\\AppData\\Local\\Programs\\cursor\\resources\\app\\bin;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\\Bandizip;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files (x86)\\PDFtk Server\\bin;E:\\NEMA\\JRE\\bin\\client;D:\\Git\\cmd;C:\\Program Files (x86)\\Common Files\\Business Objects\\3.0\\bin;C:\\Program Files (x86)\\Common Files\\Business Objects\\3.0\\crystalreportviewers11\\ActiveXControls;D:\\Anaconda;D:\\Anaconda\\Scripts;D:\\Anaconda\\Library\\bin;C:\\Program Files\\dotnet;C:\\Program Files\\NVIDIA Corporation\\Nsight Compute 2021.1.0;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.3\\lib\\x64;C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v11.3\\bin;C:\\Program Files\\NVIDI;D:\\soft_uncode\\Tesseract-OCR;D:\\soft_uncode\\微信web开发者工具\\dll;C:\\WINDOWS\\system32;C:\\WINDOWS;C:\\WINDOWS\\System32\\Wbem;C:\\WINDOWS\\System32\\WindowsPowerShell\\v1.0;C:\\WINDOWS\\System32\\OpenSSH;C:\\Program Files\\Google\\Chrome\\Application;C:\\Program Files\\NVIDIA Corporation\\NVIDIA app\\NvDLISR;D:\\soft_code\\Graphviz\\bin;D:\\soft_uncode\\pcsuite;d:\\soft_code\\Trae CN\\bin;D:\\vscode\\Microsoft VS Code\\bin;D:\\neo4jaa\\neo4j-community-5.12.0\\bin;C:\\Program Files\\Java\\jdk-21\\bin;C:\\Users\\PC\\AppData\\Local\\Microsoft\\WindowsApps,PATHEXT: .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC,PROCESSOR_ARCHITECTURE: AMD64,PROCESSOR_IDENTIFIER: Intel64 Family 6 Model 151 Stepping 2, GenuineIntel,PROCESSOR_LEVEL: 6,PROCESSOR_REVISION: 9702,PROGRAMDATA: C:\\ProgramData,PROGRAMFILES: C:\\Program Files,PROGRAMFILES(X86): C:\\Program Files (x86),PROGRAMW6432: C:\\Program Files,PROMPT: (vs) $P$G,PSMODULEPATH: %ProgramFiles%\\WindowsPowerShell\\Modules;C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\Modules,PUBLIC: C:\\Users\\Public,PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING: 1,PYTHONIOENCODING: utf-8,PYTHONUNBUFFERED: 1,PYTHONUTF8: 1,PYTHON_FROZEN_MODULES: on,SSL_CERT_FILE: D:\\Anaconda\\envs\\vs\\Library\\ssl\\cacert.pem,SYSTEMDRIVE: C:,SYSTEMROOT: C:\\WINDOWS,TEMP: C:\\Users\\PC\\AppData\\Local\\Temp,TESSDATA_PREFIX: D:\\soft_uncode\\Tesseract-OCR\\,TMP: C:\\Users\\PC\\AppData\\Local\\Temp,USERDOMAIN: DESKTOP-N2RLOJJ,USERDOMAIN_ROAMINGPROFILE: DESKTOP-N2RLOJJ,USERNAME: PC,USERPROFILE: C:\\Users\\PC,VSCODE_CODE_CACHE_PATH: C:\\Users\\PC\\AppData\\Roaming\\Code\\CachedData\\19e0f9e681ecb8e5c09d8784acaa601316ca4571,VSCODE_CRASH_REPORTER_PROCESS_TYPE: extensionHost,VSCODE_CWD: C:\\Users\\PC\\Desktop\\vscode工作区,VSCODE_DOTNET_INSTALL_TOOL_ORIGINAL_HOME: undefined,VSCODE_ESM_ENTRYPOINT: vs/workbench/api/node/extensionHostProcess,VSCODE_HANDLES_UNCAUGHT_ERRORS: true,VSCODE_IPC_HOOK: \\\\.\\pipe\\ccdd4d73-1.100.0-main-sock,VSCODE_L10N_BUNDLE_LOCATION: file:///c%3A/Users/PC/.vscode/extensions/ms-ceintl.vscode-language-pack-zh-hans-1.100.2025050709/translations/extensions/vscode.json-language-features.i18n.json,VSCODE_NLS_CONFIG: {userLocale:zh-cn,osLocale:zh-cn,resolvedLanguage:zh-cn,defaultMessagesFile:D:\\\\vscode\\\\Microsoft VS Code\\\\resources\\\\app\\\\out\\\\nls.messages.json,languagePack:{translationsConfigFile:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\tcf.json,messagesFile:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\19e0f9e681ecb8e5c09d8784acaa601316ca4571\\\\nls.messages.json,corruptMarkerFile:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\corrupted.info},locale:zh-cn,availableLanguages:{*:zh-cn},_languagePackId:4000923e07438a458172c6e7b57c9479.zh-cn,_languagePackSupport:true,_translationsConfigFile:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\tcf.json,_cacheRoot:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn,_resolvedLanguagePackCoreLocation:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\19e0f9e681ecb8e5c09d8784acaa601316ca4571,_corruptedFile:C:\\\\Users\\\\PC\\\\AppData\\\\Roaming\\\\Code\\\\clp\\\\4000923e07438a458172c6e7b57c9479.zh-cn\\\\corrupted.info},VSCODE_PID: 2824,WINDIR: C:\\WINDOWS,_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} # 使用 .items() 方法可以方便地同时获取变量名键和变量值之前已经提过字典的items()方法可以取出来键和值 # os.environ是可迭代对象for variable_name, value in os.environ.items():# 直接打印出变量名和对应的值print(f{variable_name}{value})# 你也可以选择性地打印总数 print(f\n--- 总共检测到 {len(os.environ)} 个环境变量 ---) ALLUSERSPROFILEC:\ProgramData AMOSAPPC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26 AMOSDOCSC:\Users\PC\Documents\AmosDevelopment\Amos\26 AMOSEXAMPLESC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26\Examples\English AMOSLOGSC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26\Logs AMOSPLUGINSC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26\Plugins AMOSPROGRAMD:\Jupyter\SEM\Amos26 AMOSTEMPLATESC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26\Templates\English AMOSTUTORIALC:\Users\PC\AppData\Local\AmosDevelopment\Amos\26\Tutorial\English APPDATAC:\Users\PC\AppData\Roaming CHROME_CRASHPAD_PIPE_NAME\\.\pipe\crashpad_2824_TQDHDSUOXXPVVCJP COMMONPROGRAMFILESC:\Program Files\Common Files COMMONPROGRAMFILES(X86)C:\Program Files (x86)\Common Files COMMONPROGRAMW6432C:\Program Files\Common Files COMPUTERNAMEDESKTOP-N2RLOJJ COMSPECC:\WINDOWS\system32\cmd.exe CONDA_DEFAULT_ENVvs CONDA_EXED:\Anaconda\Scripts\conda.exe CONDA_PREFIXD:\Anaconda\envs\vs CONDA_PROMPT_MODIFIER(vs) CONDA_PYTHON_EXED:\Anaconda\python.exe CONDA_ROOTD:\Anaconda CONDA_SHLVL1 CUDA_PATHC:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3 CUDA_PATH_V11_3C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3 CUDA_PATH_V12_1C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1 CUDA_VISIBLE_DEVICES0 DRIVERDATAC:\Windows\System32\Drivers\DriverData ELECTRON_RUN_AS_NODE1 FPS_BROWSER_APP_PROFILE_STRINGInternet Explorer FPS_BROWSER_USER_PROFILE_STRINGDefault HF_HOMEE:\cache\huggingface_cache HOMEDRIVEC: HOMEPATH\Users\PC JPY_INTERRUPT_EVENT4256 LOCALAPPDATAC:\Users\PC\AppData\Local LOGONSERVER\\DESKTOP-N2RLOJJ NUMBER_OF_PROCESSORS24 NVCUDASAMPLES11_3_ROOTC:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.3 NVCUDASAMPLES_ROOTC:\ProgramData\NVIDIA Corporation\CUDA Samples\v11.3 NVTOOLSEXT_PATHC:\Program Files\NVIDIA Corporation\NvToolsExt\ OLLAMA_MODELSE:\ollamamodels ONEDRIVEC:\Users\PC\OneDrive ORIGINAL_XDG_CURRENT_DESKTOPundefined OSWindows_NT PATHd:\Anaconda\envs\vs;D:\Anaconda\envs\vs;D:\Anaconda\envs\vs\Library\mingw-w64\bin;D:\Anaconda\envs\vs\Library\usr\bin;D:\Anaconda\envs\vs\Library\bin;D:\Anaconda\envs\vs\Scripts;D:\Anaconda\envs\vs\bin;D:\Anaconda\condabin;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;c:\Users\PC\AppData\Local\Programs\cursor\resources\app\bin;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\Bandizip;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files (x86)\PDFtk Server\bin;E:\NEMA\JRE\bin\client;D:\Git\cmd;C:\Program Files (x86)\Common Files\Business Objects\3.0\bin;C:\Program Files (x86)\Common Files\Business Objects\3.0\crystalreportviewers11\ActiveXControls;D:\Anaconda;D:\Anaconda\Scripts;D:\Anaconda\Library\bin;C:\Program Files\dotnet;C:\Program Files\NVIDIA Corporation\Nsight Compute 2021.1.0;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\lib\x64;C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.3\bin;C:\Program Files\NVIDI;D:\soft_uncode\Tesseract-OCR;D:\soft_uncode\微信web开发者工具\dll;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0;C:\WINDOWS\System32\OpenSSH;C:\Program Files\Google\Chrome\Application;C:\Program Files\NVIDIA Corporation\NVIDIA app\NvDLISR;D:\soft_code\Graphviz\bin;D:\soft_uncode\pcsuite;d:\soft_code\Trae CN\bin;D:\vscode\Microsoft VS Code\bin;D:\neo4jaa\neo4j-community-5.12.0\bin;C:\Program Files\Java\jdk-21\bin;C:\Users\PC\AppData\Local\Microsoft\WindowsApps PATHEXT.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC PROCESSOR_ARCHITECTUREAMD64 PROCESSOR_IDENTIFIERIntel64 Family 6 Model 151 Stepping 2, GenuineIntel PROCESSOR_LEVEL6 PROCESSOR_REVISION9702 PROGRAMDATAC:\ProgramData PROGRAMFILESC:\Program Files PROGRAMFILES(X86)C:\Program Files (x86) PROGRAMW6432C:\Program Files PROMPT(vs) $P$G PSMODULEPATH%ProgramFiles%\WindowsPowerShell\Modules;C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules PUBLICC:\Users\Public PYDEVD_IPYTHON_COMPATIBLE_DEBUGGING1 PYTHONIOENCODINGutf-8 PYTHONUNBUFFERED1 PYTHONUTF81 PYTHON_FROZEN_MODULESon SSL_CERT_FILED:\Anaconda\envs\vs\Library\ssl\cacert.pem SYSTEMDRIVEC: SYSTEMROOTC:\WINDOWS TEMPC:\Users\PC\AppData\Local\Temp TESSDATA_PREFIXD:\soft_uncode\Tesseract-OCR\ TMPC:\Users\PC\AppData\Local\Temp USERDOMAINDESKTOP-N2RLOJJ USERDOMAIN_ROAMINGPROFILEDESKTOP-N2RLOJJ USERNAMEPC USERPROFILEC:\Users\PC VSCODE_CODE_CACHE_PATHC:\Users\PC\AppData\Roaming\Code\CachedData\19e0f9e681ecb8e5c09d8784acaa601316ca4571 VSCODE_CRASH_REPORTER_PROCESS_TYPEextensionHost VSCODE_CWDC:\Users\PC\Desktop\vscode工作区 VSCODE_DOTNET_INSTALL_TOOL_ORIGINAL_HOMEundefined VSCODE_ESM_ENTRYPOINTvs/workbench/api/node/extensionHostProcess VSCODE_HANDLES_UNCAUGHT_ERRORStrue VSCODE_IPC_HOOK\\.\pipe\ccdd4d73-1.100.0-main-sock VSCODE_L10N_BUNDLE_LOCATIONfile:///c%3A/Users/PC/.vscode/extensions/ms-ceintl.vscode-language-pack-zh-hans-1.100.2025050709/translations/extensions/vscode.json-language-features.i18n.json VSCODE_NLS_CONFIG{userLocale:zh-cn,osLocale:zh-cn,resolvedLanguage:zh-cn,defaultMessagesFile:D:\\vscode\\Microsoft VS Code\\resources\\app\\out\\nls.messages.json,languagePack:{translationsConfigFile:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\tcf.json,messagesFile:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\19e0f9e681ecb8e5c09d8784acaa601316ca4571\\nls.messages.json,corruptMarkerFile:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\corrupted.info},locale:zh-cn,availableLanguages:{*:zh-cn},_languagePackId:4000923e07438a458172c6e7b57c9479.zh-cn,_languagePackSupport:true,_translationsConfigFile:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\tcf.json,_cacheRoot:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn,_resolvedLanguagePackCoreLocation:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\19e0f9e681ecb8e5c09d8784acaa601316ca4571,_corruptedFile:C:\\Users\\PC\\AppData\\Roaming\\Code\\clp\\4000923e07438a458172c6e7b57c9479.zh-cn\\corrupted.info} VSCODE_PID2824 WINDIRC:\WINDOWS _CONDA_OLD_CHCP936 __CONDA_OPENSLL_CERT_FILE_SET1 PYDEVD_USE_FRAME_EVALNO TERMxterm-color CLICOLOR1 FORCE_COLOR1 CLICOLOR_FORCE1 PAGERcat GIT_PAGERcat MPLBACKENDmodule://matplotlib_inline.backend_inline KMP_DUPLICATE_LIB_OKTrue KMP_INIT_AT_FORKFALSE--- 总共检测到 96 个环境变量 ---2. 目录树 os.walk() 是 Python os 模块中一个非常有用的函数它用于遍历或称“行走”一个目录树。 核心功能 os.walk(top, topdownTrue, οnerrοrNone, followlinksFalse) 会为一个目录树生成文件名。对于树中的每个目录包括 top 目录本身它会 yield产生一个包含三个元素的元组 (tuple) (dirpath, dirnames, filenames) dirpath: 一个字符串表示当前正在访问的目录的路径。dirnames: 一个列表list包含了 dirpath 目录下所有子目录的名称不包括 . 和 ..。filenames: 一个列表list包含了 dirpath 目录下所有非目录文件的名称。 示例目录结构 (Markdown形式): 假设你的 start_directory (当前工作目录 .) 是 my_project其结构如下 my_project/ ├── data/ │ ├── processed/ │ └── raw/ │ └── data1.csv ├── src/ │ ├── models/ │ │ └── model_a.py │ └── utils.py ├── main.py └── README.md os.walk 的遍历顺序及输出 (模拟): (注意dirnames 和 filenames 的顺序可能因操作系统或文件系统而略有不同但遍历的 深度优先 逻辑是一致的) --- 开始遍历目录: my_project ---当前访问目录 (dirpath): my_project子目录列表 (dirnames): [data, src] # --- 列出第一层子目录文件列表 (filenames): [main.py, README.md]当前访问目录 (dirpath): my_project/data # --- 深入到 data子目录列表 (dirnames): [processed, raw] # --- 列出 data 下的子目录文件列表 (filenames): []当前访问目录 (dirpath): my_project/data/processed # --- 深入到 processed子目录列表 (dirnames): []文件列表 (filenames): []当前访问目录 (dirpath): my_project/data/raw # --- 回溯到 data然后深入到 raw子目录列表 (dirnames): []文件列表 (filenames): [data1.csv]当前访问目录 (dirpath): my_project/src # --- 回溯到 my_project然后深入到 src子目录列表 (dirnames): [models]文件列表 (filenames): [utils.py]当前访问目录 (dirpath): my_project/src/models # --- 深入到 models子目录列表 (dirnames): []文件列表 (filenames): [model_a.py]# 遍历结束 总结: os.walk 会首先访问起始目录 (my_project)然后它会选择第一个子目录 (data) 并深入进去访问 data 目录本身然后继续深入它的子目录 (processed - raw)。只有当 data 分支下的所有内容都被访问完毕后它才会回到 my_project 这一层去访问下一个子目录 (src)并对 src 分支重复深度优先的探索。 它不是按层级先访问所有第一层再访问所有第二层进行的而是按分支深度进行的。这种策略被称之为深度优先 import osstart_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})# # 你可以在这里对文件进行操作比如打印完整路径# print( 文件完整路径:)# for filename in filenames:# full_path os.path.join(dirpath, filename)# print(f - {full_path})--- 开始遍历目录: c:\Users\PC\Desktop\python训练营 ---当前访问目录 (dirpath): c:\Users\PC\Desktop\python训练营子目录列表 (dirnames): [演示1]文件列表 (filenames): [day24 元组和OS模块.ipynb]当前访问目录 (dirpath): c:\Users\PC\Desktop\python训练营\演示1子目录列表 (dirnames): [演示文件夹2]文件列表 (filenames): [day21 常见的降维算法.ipynb, day23 机器学习流水线.ipynb]当前访问目录 (dirpath): c:\Users\PC\Desktop\python训练营\演示1\演示文件夹2子目录列表 (dirnames): []文件列表 (filenames): [main.ipynb]介绍这个方法是因为在你面临云服务器时候往往只能通过命令行和代码块中函数来查看无法像电脑一样在界面中查看所以这个方法可以让你直接在代码块中查看。 上图为kaggle平台代码提交的代码 理解下这个函数的遍历 以后如果这个训练营说到大模型相关我们还会经常和os模块打交道 四、作业 对自己电脑的不同文件夹利用今天学到的知识操作下理解下os路径。 1. 准备工作 新建一个测试文件夹例如 C:\test_os在里面创建子文件夹和测试文件 test_os/ ├── docs/ │ ├── report.docx │ └── data.xlsx ├── images/ │ ├── cat.jpg │ └── dog.png └── temp/└── old_file.txt 2. 实战代码示例​ 1遍历文件夹并统计文件数量​ import os# 指定要操作的文件夹路径替换为你自己的路径 folder_path rC:\test_osprint(f 正在扫描文件夹: {folder_path})total_files 0# 使用 os.walk 遍历所有子文件夹 for root, dirs, files in os.walk(folder_path):# root: 当前文件夹路径# dirs: 子文件夹列表# files: 文件列表# 统计当前文件夹的文件数file_count len(files)total_files file_count# 打印当前文件夹信息print(f\n 文件夹: {root})print(f 子文件夹: {dirs})print(f 文件数量: {file_count} 个)print(f 示例文件: {files[:3]}...) # 显示前3个文件print(f\n✅ 总共找到 {total_files} 个文件) 2批量重命名图片文件​ import os# 指定图片文件夹路径替换为你自己的路径 image_folder rC:\test_os\images# 计数器 count 1print( 开始重命名图片...)for filename in os.listdir(image_folder):# 拼接完整文件路径old_path os.path.join(image_folder, filename)# 只处理图片文件扩展名判断if filename.lower().endswith((.png, .jpg, .jpeg)):# 新文件名pic_001.jpgnew_name fpic_{count:03d}{os.path.splitext(filename)[1]} new_path os.path.join(image_folder, new_name)# 执行重命名os.rename(old_path, new_path)print(f重命名: {filename} → {new_name})count 1print(✅ 重命名完成) 3整理下载文件夹按扩展名分类​ import os import shutil# 假设你的下载文件夹路径替换为你自己的路径 download_folder rC:\test_os\temp target_folder rC:\test_os\sorted_files# 创建目标文件夹如果不存在 os.makedirs(target_folder, exist_okTrue)print( 开始整理文件...)for filename in os.listdir(download_folder):file_path os.path.join(download_folder, filename)# 跳过文件夹if os.path.isdir(file_path):continue# 获取文件扩展名不带点_, ext os.path.splitext(filename)ext ext[1:].lower() # 去掉点并转小写# 按扩展名创建子文件夹dest_folder os.path.join(target_folder, ext)os.makedirs(dest_folder, exist_okTrue)# 移动文件shutil.move(file_path, os.path.join(dest_folder, filename))print(f移动文件: {filename} → {ext}/)print(✅ 整理完成) 3. 重要概念解析 ​​os.path.join()​​ 自动处理不同操作系统的路径分隔符Windows用\Mac/Linux用/比手动拼接更安全。 ✅ 正确写法os.path.join(folder, sub, file.txt) ❌ 错误写法folder / sub / file.txt ​​绝对路径 vs 相对路径​​ 绝对路径从根目录开始的完整路径C:\test_os\images\cat.jpg相对路径相对于当前工作目录的路径images/cat.jpg获取当前目录os.getcwd() ​​路径存在性检查 if os.path.exists(path):print(路径存在) if os.path.isfile(path):print(这是一个文件) if os.path.isdir(path):print(这是一个文件夹) 浙大疏锦行
http://www.zqtcl.cn/news/396719/

相关文章:

  • 网站建设找盖亚科技WordPress 百度 主动
  • 中国最受欢迎的网站杭州做电商网站
  • 百度招聘 网站开发全网营销实战培训
  • 备案网站内容说明广州哪个区封了
  • 大足建网站的软件开发者模式怎么打开
  • 中国有什么网站做跨境零售农商1号的网站建设费
  • 用宝塔给远程网站做备份购买一个网站需要多少钱
  • 百度蜘蛛不爬取网站做汽车新闻哪个网站好
  • 三维建设项目管理网站免费下载网站模板
  • 淘客联盟做任务网站页面设计所遵循的原则有哪些
  • 怎么建设收费网站行业网站建站
  • 织梦园模板网站自适应网站建设服务哪家好
  • 优秀专题网站恩施北京网站建设
  • 常用网站后缀企业网站用什么域名
  • 网站建设定制公众号小程序51ppt模板免费下载完整版免费ppt
  • 个人网站工商备案济南建网站app
  • 佛山网站建设公司哪家性价比高2018建设网站
  • 公司建一个网站建设工程教育网网址
  • 一级a做爰片免播放器网站推广渠道包括哪些
  • 南京市建设工程档案馆网站新乡市四合一网站建设
  • 网站建设制作周期咸宁网站设计制作
  • 网站推广营销联系方式南宁做网站推广的公司
  • 深圳网站建设公司元红河网站建设代理
  • 商丘河南网站建设Wordpress加720云vr
  • 上海网站建设公司网站建设网络推广费用高吗
  • 南宁学做网站百度电脑版
  • 公司网站建设工作通知怎样看一个网站做的网络广告
  • 普洱市住房和城乡建设局网站最有创意的广告设计
  • 网站开发者常见问题网站建设鸿儒
  • 米方科技网站建设个人可以做外贸网站吗