python 在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)
在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)
引言由于win10電腦自帶的獲取文件路徑為雙引號括起來的單反斜杠,如下圖。
'D:sankey.html'
但是在很多程序里讀取文件的時候,文件路徑中的反斜杠是會作為反編譯的特殊符號,所以無法直接讀取該路徑
例如在R語言中,讀取數(shù)據(jù)只能用斜杠'/',或者是雙反斜杠''。
每次在R里讀表都很麻煩,要不只能手輸,要不用系統(tǒng)自帶的路徑,然后一個一個加反斜杠。
像我這么懶的人,對于這種機械式的操作是忍無可忍的。于是開啟了復(fù)制文件路徑的改造之路。
下圖為成品:
get_path_1會返回雙反斜杠'“的路徑,get_path_2會返回單斜杠”/'的路徑
代碼返回的是帶了雙引號的路徑,并且做了兩種類型的路徑,運行完后直接將結(jié)果復(fù)制到了系統(tǒng)的粘貼板。
pwd_1返回的是雙反斜杠路徑:'D:filesdata.csv'
pwd_2返回的是單斜杠路徑:'D:/files/data.csv'
# -*- coding: utf-8 -*-'''Created on Fri Sep 27 10:18:43 2019author: Irvinfaithemail: [email protected]'''import sysimport subprocessclass 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: pass2. 保存腳本并在terminal測試運行
這里把腳本保存為 “getpwd.py”然后打開cmd進入文件存放路徑測試運行
第一個參數(shù)“path_2”為所要獲取的路徑的類型,即為單斜杠路徑,第二個參數(shù)即為所需獲取有效路徑的文件。運行后沒有任何報錯,說明該文件的有效路徑已經(jīng)復(fù)制到你的粘貼板了。
隨便找個地方按ctrl+v測試一下,粘貼出來的結(jié)果如下:
'D:/sankey.html'
測試成功,開始改造右鍵菜單了。
3. 編輯.bat批處理文件及.reg注冊表文件因為有兩種路徑的類型,我是兩種都放進了右鍵菜單中,
所以需要兩份bat和reg文件,這里可以根據(jù)你的實際需要,根據(jù)你所需的路徑類型,輸入指定的參數(shù)保存文件就好了。這里只展示其中一種參數(shù)為path_1作為示例,另外一個只是在bat文件中的執(zhí)行參數(shù)對應(yīng)改一下,reg文件中在右鍵菜單呈現(xiàn)的名字改一下,其他都一樣的。
3.1 .bat批處理文件在C:Windows目錄中,新建空白文件輸入如下:
D:softwareanacondapython.exe D:getpwd.py path_1 %*
這里第一個參數(shù)D:softwareanacondapython.exe是在系統(tǒng)中python的可執(zhí)行程序第二個參數(shù)D:getpwd.py為腳本路徑第三個參數(shù)path_1即為所要返回的文件路徑類型的參數(shù)注意后面還有百分號和星號別漏了 %*
編輯完保存為“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文件的名稱其他的都不動照搬復(fù)制。
編輯完保存'get_file_wd_path_1.reg'
4. 運行.reg文件,將信息添加進注冊表雙擊運行剛保存的'get_file_wd_path_1.reg',點擊“是”
大功告成。
這時候隨便對準一個文件點右鍵,會發(fā)現(xiàn)多了一個選項,點擊后就能獲取到該文件的有效路徑了,直接粘貼到代碼中就可以了。
注:點擊后會跳出python的運行窗口,需等執(zhí)行窗口自動關(guān)閉后,粘貼板上才有已復(fù)制好的路徑。
ps:python 添加絕對路徑時用反斜杠和正斜杠的區(qū)別
#使用絕對路徑 雙反斜杠with open(’E:usedata.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())
總結(jié)
到此這篇關(guān)于python 在右鍵菜單中加入復(fù)制目標(biāo)文件的有效存放路徑(單斜杠或者雙反斜杠)的文章就介紹到這了,更多相關(guān)python 右鍵菜單存放路徑內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. JavaWeb Servlet中url-pattern的使用2. 淺談SpringMVC jsp前臺獲取參數(shù)的方式 EL表達式3. asp(vbscript)中自定義函數(shù)的默認參數(shù)實現(xiàn)代碼4. React優(yōu)雅的封裝SvgIcon組件示例5. 輕松學(xué)習(xí)XML教程6. php網(wǎng)絡(luò)安全中命令執(zhí)行漏洞的產(chǎn)生及本質(zhì)探究7. ASP刪除img標(biāo)簽的style屬性只保留src的正則函數(shù)8. jsp中sitemesh修改tagRule技術(shù)分享9. ASP基礎(chǔ)知識VBScript基本元素講解10. 詳解瀏覽器的緩存機制
