change Path script

trigger: 在服务器上跑代码,本地更改,安利gtk代码同步工具,但在服务器上对代码库进行 commit 或者diff,project大,寻找路径,索引繁琐,遂做个路径转换的小脚本

consider到有转义字符的转换问题

tool:剪切板访问工具 —-pyperclip,
常用函数

recommend:

pyperclip.copy()
pyperclip.paste()

源代码

#author:richard.shao 
import pyperclip
inPath = pyperclip.paste()
print inPath
outPath = inPath.replace('\\','/')
outPath = outPath.strip(':')
print type(outPath)
pyperclip.copy(outPath)

bug_fix:replace 返回替换的字符串而不是修改原字符串
outPath = outPath.replace(“:\”,’/’)思路不对,逻辑问题,:后的反斜杠已经删除,遂,用stript

advance: make variable meaningful

no change D:\anaconda\Scripts\conda.exe no change D:\anaconda\Scripts\conda-env.exe no change D:\anaconda\Scripts\conda-script.py no change D:\anaconda\Scripts\conda-env-script.py no change D:\anaconda\condabin\conda.bat no change D:\anaconda\Library\bin\conda.bat no change D:\anaconda\condabin\_conda_activate.bat no change D:\anaconda\condabin\rename_tmp.bat no change D:\anaconda\condabin\conda_auto_activate.bat no change D:\anaconda\condabin\conda_hook.bat no change D:\anaconda\Scripts\activate.bat no change D:\anaconda\condabin\activate.bat no change D:\anaconda\condabin\deactivate.bat no change D:\anaconda\Scripts\deactivate no change D:\anaconda\etc\profile.d\conda.sh no change D:\anaconda\etc\fish\conf.d\conda.fish no change D:\anaconda\shell\condabin\Conda.psm1 no change D:\anaconda\shell\condabin\conda-hook.ps1 no change D:\anaconda\Lib\site-packages\xontrib\conda.xsh no change D:\anaconda\etc\profile.d\conda.csh no change C:\Users\PC\Documents\WindowsPowerShell\profile.ps1 no change HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun No action taken. PS D:\yolo11\ultralytics-8.3.39> conda init powershell^C PS D:\yolo11\ultralytics-8.3.39> conda init powershell no change D:\anaconda\Scripts\conda.exe no change D:\anaconda\Scripts\conda-env.exe no change D:\anaconda\Scripts\conda-script.py no change D:\anaconda\Scripts\conda-env-script.py no change D:\anaconda\condabin\conda.bat no change D:\anaconda\Library\bin\conda.bat no change D:\anaconda\condabin\_conda_activate.bat no change D:\anaconda\condabin\rename_tmp.bat no change D:\anaconda\condabin\conda_auto_activate.bat no change D:\anaconda\condabin\conda_hook.bat no change D:\anaconda\Scripts\activate.bat no change D:\anaconda\condabin\activate.bat no change D:\anaconda\condabin\deactivate.bat no change D:\anaconda\Scripts\activate no change D:\anaconda\Scripts\deactivate no change D:\anaconda\etc\profile.d\conda.sh no change D:\anaconda\etc\fish\conf.d\conda.fish no change D:\anaconda\shell\condabin\Conda.psm1 no change D:\anaconda\shell\condabin\conda-hook.ps1 no change D:\anaconda\Lib\site-packages\xontrib\conda.xsh no change D:\anaconda\etc\profile.d\conda.csh no change C:\Users\PC\Documents\WindowsPowerShell\profile.ps1 No action taken.
最新发布
07-13
### 三级标题:实现 `<el-tree-select>` 默认展开已选节点路径 在使用 `el-tree-select` 组件时,若希望默认展开已选择节点的完整路径,可以通过设置 `expanded-keys` 属性并结合递归逻辑来实现。组件本身不提供自动展开路径的功能,因此需要手动计算出从根节点到当前选中节点的路径,并将这些节点的 `key` 值加入 `expanded-keys` 数组中。 要确保路径正确展开,可以在数据结构中为每个节点添加 `parent` 引用,表示其父节点。这样在选中某个节点后,可以递归地向上查找所有祖先节点,并构建完整的展开路径。例如: ```javascript methods: { getDefaultExpandedKeys(node, path = []) { path.unshift(node.id); if (node.parent) { this.getDefaultExpandedKeys(node.parent, path); } else { this.expandedKeys = [...new Set([...this.expandedKeys, ...path])]; } }, handleNodeChange(value) { const selectedNode = this.treeData.find(node => node.id === value); if (selectedNode) { this.getDefaultExpandedKeys(selectedNode); } } } ``` 其中,`unshift` 方法用于将当前节点的 `id` 插入路径数组的最前端,以保证路径顺序是从根节点到当前节点。这一操作符合树形结构的层级展示需求[^1]。 ### 代码示例 以下是一个完整的示例,展示如何在 `<el-tree-select>` 中实现默认展开已选择节点的路径: ```html <template> <div> <el-tree-select v-model="selectedValue" :data="treeData" node-key="id" :expanded-keys="expandedKeys" @change="handleNodeChange" /> </div> </template> <script> export default { data() { return { selectedValue: null, expandedKeys: [], treeData: [ { id: 1, label: '一级节点', children: [ { id: 2, label: '二级节点', parent: { id: 1 }, children: [ { id: 3, label: '三级节点', parent: { id: 2 } } ] } ] } ] }; }, methods: { getDefaultExpandedKeys(node, path = []) { path.unshift(node.id); if (node.parent) { this.getDefaultExpandedKeys(node.parent, path); } else { this.expandedKeys = [...new Set([...this.expandedKeys, ...path])]; } }, handleNodeChange(value) { const selectedNode = this.treeData.find(node => node.id === value || node.children?.some(child => child.id === value)); if (selectedNode) { this.getDefaultExpandedKeys(selectedNode); } } } }; </script> ``` 该示例通过 `handleNodeChange` 方法获取选中节点,并调用 `getDefaultExpandedKeys` 方法构建完整的展开路径。最终通过 `expanded-keys` 控制 `<el-tree-select>` 的展开状态,实现路径的默认展开效果[^1]。 ### 注意事项 - 在处理 `path.unshift(node.id)` 时,需确保每次调用都正确地将当前节点插入路径数组的开头,以保持路径顺序。 - 若数据中未包含 `parent` 字段,应手动补充或通过递归函数动态绑定,否则无法准确追踪路径。 - 使用 `Set` 可避免重复的 `key` 被多次添加进 `expandedKeys`,提升性能和准确性。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值