python 在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)
在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)
引言
由于win10電腦自帶的獲取文件路徑為雙引號(hào)括起來(lái)的單反斜杠,如下圖。
"D:\sankey.html"
但是在很多程序里讀取文件的時(shí)候,文件路徑中的反斜杠是會(huì)作為反編譯的特殊符號(hào),所以無(wú)法直接讀取該路徑
例如在R語(yǔ)言中,讀取數(shù)據(jù)只能用斜杠"/",或者是雙反斜杠"\\"。
每次在R里讀表都很麻煩,要不只能手輸,要不用系統(tǒng)自帶的路徑,然后一個(gè)一個(gè)加反斜杠。
像我這么懶的人,對(duì)于這種機(jī)械式的操作是忍無(wú)可忍的。
于是開(kāi)啟了復(fù)制文件路徑的改造之路。
下圖為成品:
get_path_1會(huì)返回雙反斜杠"\\“的路徑,
get_path_2會(huì)返回單斜杠”/"的路徑
1. 獲取指定文件路徑并復(fù)制到系統(tǒng)粘貼板的python代碼
代碼返回的是帶了雙引號(hào)的路徑,并且做了兩種類(lèi)型的路徑,運(yùn)行完后直接將結(jié)果復(fù)制到了系統(tǒng)的粘貼板。
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測(cè)試運(yùn)行
這里把腳本保存為 “getpwd.py”
然后打開(kāi)cmd進(jìn)入文件存放路徑測(cè)試運(yùn)行
第一個(gè)參數(shù)“path_2”為所要獲取的路徑的類(lèi)型,即為單斜杠路徑,第二個(gè)參數(shù)即為所需獲取有效路徑的文件。
運(yùn)行后沒(méi)有任何報(bào)錯(cuò),說(shuō)明該文件的有效路徑已經(jīng)復(fù)制到你的粘貼板了。
隨便找個(gè)地方按ctrl+v測(cè)試一下,粘貼出來(lái)的結(jié)果如下:
"D:/sankey.html"
測(cè)試成功,開(kāi)始改造右鍵菜單了。
3. 編輯.bat批處理文件及.reg注冊(cè)表文件
因?yàn)橛袃煞N路徑的類(lèi)型,我是兩種都放進(jìn)了右鍵菜單中,
所以需要兩份bat和reg文件,這里可以根據(jù)你的實(shí)際需要,根據(jù)你所需的路徑類(lèi)型,輸入指定的參數(shù)保存文件就好了。
這里只展示其中一種參數(shù)為path_1作為示例,另外一個(gè)只是在bat文件中的執(zhí)行參數(shù)對(duì)應(yīng)改一下,reg文件中在右鍵菜單呈現(xiàn)的名字改一下,其他都一樣的。
3.1 .bat批處理文件
在C:\Windows目錄中,新建空白文件輸入如下:
D:\software\anaconda\python.exe D:\getpwd.py path_1 %*
這里第一個(gè)參數(shù)D:\software\anaconda\python.exe是在系統(tǒng)中python的可執(zhí)行程序
第二個(gè)參數(shù)D:\getpwd.py為腳本路徑
第三個(gè)參數(shù)path_1即為所要返回的文件路徑類(lèi)型的參數(shù)
注意后面還有百分號(hào)和星號(hào)別漏了 %*
編輯完保存為“get_file_wd_path_1.bat”
3.2 .reg注冊(cè)表文件
在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文件的名稱(chēng)
其他的都不動(dòng)照搬復(fù)制。
編輯完保存"get_file_wd_path_1.reg"
4. 運(yùn)行.reg文件,將信息添加進(jìn)注冊(cè)表
雙擊運(yùn)行剛保存的"get_file_wd_path_1.reg",點(diǎn)擊“是”
大功告成。
這時(shí)候隨便對(duì)準(zhǔn)一個(gè)文件點(diǎn)右鍵,會(huì)發(fā)現(xiàn)多了一個(gè)選項(xiàng),點(diǎn)擊后就能獲取到該文件的有效路徑了,直接粘貼到代碼中就可以了。
注:點(diǎn)擊后會(huì)跳出python的運(yùn)行窗口,需等執(zhí)行窗口自動(dòng)關(guān)閉后,粘貼板上才有已復(fù)制好的路徑。
ps:python 添加絕對(duì)路徑時(shí)用反斜杠和正斜杠的區(qū)別
#使用絕對(duì)路徑 雙反斜杠 with open('E:\\use\\data.txt') as file_object: contents = file_object.read() print(contents.rstrip()) #使用絕對(duì)路徑 正斜杠 with open('E:/use/data.txt') as file_object: contents = file_object.read() print(contents.rstrip())
總結(jié)
到此這篇關(guān)于python 在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)的文章就介紹到這了,更多相關(guān)python 右鍵菜單存放路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python開(kāi)發(fā)常用的一些開(kāi)源Package分享
這篇文章主要介紹了Python開(kāi)發(fā)常用的一些開(kāi)源Package分享,常用的開(kāi)源項(xiàng)目包括WEB開(kāi)發(fā)框架、工具包、數(shù)據(jù)庫(kù)操作包、網(wǎng)絡(luò)操作包等,需要的朋友可以參考下2015-02-02Django項(xiàng)目如何獲得SSL證書(shū)與配置HTTPS
本文總結(jié)了如何獲得SSL證書(shū)并給Django項(xiàng)目配置HTTPS,建議先收藏再閱讀,將來(lái)有一天你很可能會(huì)用到它。2021-04-04PyTorch一小時(shí)掌握之神經(jīng)網(wǎng)絡(luò)氣溫預(yù)測(cè)篇
這篇文章主要介紹了PyTorch一小時(shí)掌握之神經(jīng)網(wǎng)絡(luò)氣溫預(yù)測(cè)篇,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Python+OpenCV實(shí)現(xiàn)角度測(cè)量的示例代碼
本文介紹如何使用python語(yǔ)言實(shí)現(xiàn)角度測(cè)量,程序包括鼠標(biāo)選點(diǎn)、直線(xiàn)斜率計(jì)算、角度計(jì)算三個(gè)子程序和一個(gè)主程序,感興趣的可以了解一下2022-03-03pymysql實(shí)現(xiàn)增刪改查的操作指南(python)
python中可以使用pymysql來(lái)MySQL數(shù)據(jù)庫(kù)的連接,并實(shí)現(xiàn)數(shù)據(jù)庫(kù)的各種操作,這篇文章主要給大家介紹了關(guān)于pymsql實(shí)現(xiàn)增刪改查的相關(guān)資料,需要的朋友可以參考下2021-05-05Python編程使用有限狀態(tài)機(jī)識(shí)別地址有效性
這篇文章主要介紹了Python編程中如何使用有限狀態(tài)機(jī)識(shí)別地址有效性,如何識(shí)別一個(gè)地址是否有效,確切的講,如何編程識(shí)別一個(gè)中國(guó)地址是否有效2021-09-09