python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)

这篇文章主要介绍了python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠),本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

目录

引言

1. 获取指定文件路径并复制到系统粘贴板的python代码

2. 保存脚本并在terminal测试运行

3. 编辑.bat批处理文件及.reg注册文件

3.1 .bat批处理文件

3.2 .reg注册文件

4. 运行.reg文件,将信息添加注册

在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)

引言

由于win10电脑自带获取文件路径为双引号括起来的单反斜杠,如下图。

"D:sankey.html"

但是在很多程序里读取文件的时候,文件路径中的反斜杠是会作为反编译的特殊符号,所以无法直接读取该路径

例如在R语言中,读取数据只能用斜杠"/",或者是双反斜杠"\"。

每次在R里读表都很麻烦,要不只能手输,要不用系统自带的路径,然后一个一个加反斜杠。

像我这么懒的人,对于这种机械式的操作是忍无可忍的。

于是开启了复制文件路径的改造之路。

下图为成品:

get_path_1会返回双反斜杠"\“的路径,

get_path_2会返回单斜杠”/"的路径

1. 获取指定文件路径并复制到系统粘贴板的python代码

代码返回的是带了双引号的路径,并且做了两种类型的路径,运行完后直接将结果复制到了系统的粘贴板。

pwd_1返回的是双反斜杠路径:

"D:\files\data.csv"

pwd_2返回的是单斜杠路径:

"D:/files/data.csv"

# -*- coding: utf-8 -*- """ Created on Fri Sep 27 10:18:43 2019 author: Irvinfaith email: Irvinfaith@hotmail.com """ import sys import subprocess class get_pwd(): """ Main class to pass a path of target file to console. """ def __init__(self, path): self.path = path def pwd_1(self): """ Return path splits with double backslash. """ path_1 = self.path.replace('\', '\\') return self.copy_to_clipboard(path_1) def pwd_2(self): """ Return path splits with slash. """ path_2 = self.path.replace('\', '/') return self.copy_to_clipboard(path_2) def copy_to_clipboard(self, txt): """ copy path and add double quote into clipboard. """ cmd = 'echo "' + txt.strip() + '"|clip' return subprocess.check_call(cmd, shell=True) if __name__ == '__main__': gp = get_pwd(sys.argv[2]) if sys.argv[1] == 'path_1': gp.pwd_1() elif sys.argv[1] == 'path_2': gp.pwd_2() else: pass

2. 保存脚本并在terminal测试运行

这里把脚本保存为 “getpwd.py

然后打开cmd进入文件存放路径测试运行

一个参数“path_2”为所要获取的路径的类型,即为单斜杠路径,第二个参数即为所需获取有效路径的文件

运行后没有任何报错,说明该文件的有效路径已经复制到你的粘贴板了。

随便找个地方按ctrl+v测试一下,粘贴出来的结果如下:

"D:/sankey.html"

测试成功,开始改造右键菜单了。

3. 编辑.bat批处理文件及.reg注册文件

因为有两种路径的类型,我是两种都放进了右键菜单中,

所以需要两份bat和reg文件,这里可以根据你的实际需要,根据你所需的路径类型,输入指定的参数保存文件就好了。

这里只展示其中一种参数为path_1作为示例,另外一个只是在bat文件中的执行参数对应改一下,reg文件中在右键菜单呈现的名字改一下,其他都一样的。

3.1 .bat批处理文件

C:Windows目录中,新建空白文件输入如下:

D:softwareanacondapython.exe D:getpwd.py path_1 %*

这里第一个参数D:softwareanacondapython.exe是在系统中python的可执行程序

第二个参数D:getpwd.py为脚本路径

第三个参数path_1即为所要返回的文件路径类型的参数

注意后面还有百分号星号别漏了 %*

编辑完保存为“get_file_wd_path_1.bat

3.2 .reg注册文件

C:Windows目录中,新建空白文件输入如下:

Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT*shellget_path_1command] @="get_file_wd_path_1.bat "%1""

其中第二行的get_path_1为在右键菜单中所展示的文字

第三行的"get_file_wd_path_1.bat"为.bat文件名称

其他的都不动照搬复制。

编辑完保存"get_file_wd_path_1.reg"

4. 运行.reg文件,将信息添加注册

双击运行刚保存的"get_file_wd_path_1.reg",点击“是”

大功告成。

这时候随便对准一个文件点右键,会发现多了一个选项,点击后就能获取到该文件的有效路径了,直接粘贴到代码中就可以了。

注:点击后会跳出python的运行窗口,需等执行窗口自动关闭后,粘贴板上才有已复制好的路径。

ps:python 添加绝对路径时用反斜杠和正斜杠的区别

#使用绝对路径 双反斜杠 with open('E:\use\data.txt') as file_object: contents = file_object.read() print(contents.rstrip()) #使用绝对路径 正斜杠 with open('E:/use/data.txt') as file_object: contents = file_object.read() print(contents.rstrip())

总结

到此这篇关于python 在右键菜单中加入复制目标文件的有效存放路径(单斜杠或者双反斜杠)的文章就介绍到这了,更多相关python 右键菜单存放路径内容搜索编程之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程之家!

相关文章

功能概要:(目前已实现功能)公共展示部分:1.网站首页展示...
大体上把Python中的数据类型分为如下几类: Number(数字) ...
开发之前第一步,就是构造整个的项目结构。这就好比作一幅画...
源码编译方式安装Apache首先下载Apache源码压缩包,地址为ht...
前面说完了此项目的创建及数据模型设计的过程。如果未看过,...
python中常用的写爬虫的库有urllib2、requests,对于大多数比...