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
"""
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 = place('\\', '\\\\')
py_to_clipboard(path_1)
def pwd_2(self):
"""
Return path splits with slash.
"""
path_2 = place('\\', '/')
py_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测试运⾏
2020法定节假日时间表
这⾥把脚本保存为 “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:\software\ D:\getpwd.py path_1 %*
这⾥第⼀个参数D:\software\是在系统中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\*\shell\get_path_1\command]
@="get_file_wd_path_1.bat \"%1\""
其中第⼆⾏的get_path_1为在右键菜单中所展⽰的⽂字
第三⾏的"get_file_wd_path_1.bat"为.bat⽂件的名称
伍宇娟其他的都不动照搬复制。
编辑完保存"get_file_wd_"
4. 运⾏.reg⽂件,将信息添加进注册表
双击运⾏刚保存的"get_file_wd_",点击“是”
⼤功告成。
这时候随便对准⼀个⽂件点右键,会发现多了⼀个选项,点击后就能获取到该⽂件的有效路径了,直接粘贴到代码中就可以了。
注:点击后会跳出python的运⾏窗⼝,需等执⾏窗⼝⾃动关闭后,粘贴板上才有已复制好的路径。
ps:python 添加绝对路径时⽤反斜杠和正斜杠的区别
#使⽤绝对路径双反斜杠
with open('E:\\use\\') as file_object:
contents = ad()
print(contents.rstrip())
#使⽤绝对路径正斜杠
with open('E:/') as file_object:
contents = ad()
print(contents.rstrip())
总结
到此这篇关于python 在右键菜单中加⼊复制⽬标⽂件的有效存放路径(单斜杠或者双反斜杠)的⽂章就介绍到这了,更多相关python 右键菜单存放路径内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!