2016-09-25 139 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