2016-09-25 77 views
-1

我想根據apkName(例如a.apkb.apk等),我想最終名稱有.json延伸,而不是.apk擴展到移動和重命名文件名爲malicious.txt位於路徑/home/dina/A到新的位置/home/dina/b用新的名稱 - 例如a.jsonb.json如何在Python中更改文件名和擴展名?

我想:

import os 
os.rename("malicious.txt",apkName) 

但它消除malicious.txt沒有出現任何其它文件。

+0

如果您可以在運行腳本之前和之後編寫一些文件示例(例如my/path/file1.txt [輸入] my/path/file2.txt),這會更好。然後人們可以清楚地看到你想要做什麼和你的腳本有什麼問題。 – fronthem

回答

0

下應該改名「malicious.txt」是與「以.json」

import os 
apkName = "a.apk" 
apkFullpath = os.path.join(os.path.sep,"home","dina","a",apkName) 
jsonName = os.path.splitext(apkName)[0]+".json" 
jsonFullpath = os.path.join(os.path.sep,"home","dina","b",jsonName) 
os.rename("malicious.txt",jsonName) 

請注意,您可以重命名的第一次重命名後的文件名,只有一次(延伸apkfile的名字,你將無法訪問舊名)

更多信息有關os.path.joinos.path.sep

https://docs.python.org/2/library/os.path.html

os.path.join(路徑,*路徑)

加入一個或多個路徑成分智能。返回值是路徑和任何*路徑成員的連接,每個除非最後一個非空部分後面都有一個目錄分隔符(os.sep),這意味着如果最後一部分爲空,結果將僅以分隔符結尾。如果某個組件是絕對路徑,則所有先前的組件都將被丟棄,並從絕對路徑組件繼續加入。

在Windows上,當遇到絕對路徑組件(例如r'\ foo')時,驅動器號不會重置。如果組件包含驅動器號,則以前的所有組件都將被丟棄,並重置驅動器號。請注意,由於每個驅動器都有當前目錄,因此os.path.join(「c:」,「foo」)表示相對於驅動器C上當前目錄的路徑:(c:foo),而不是c:\ foo 。

+0

apkname already called a.apk我想將malicious.txt更改爲a.json,所以我不知道如何編寫僅在沒有擴展名的情況下調用(a)的apkname,然後添加(.json)作爲新擴展名 – dina

+0

@迪那 - 看到我更新的答案。 jsonName需要apkName(「a」)的第一部分並添加「.json」擴展名 - 所以「a.apk」變成「a.json」 – Yaron