我想移动并将位于路径malicious.txt
的名为/home/dina/A
的文件重命名为新位置/home/dina/b
,其新名称基于apkName
(例如a.apk
}或b.apk
等)我希望最终名称的扩展名为.json
,而不是.apk
扩展名 - 例如a.json
和b.json
我试过了:
import os
os.rename("malicious.txt",apkName)
但它删除了malicious.txt
而没有出现任何其他文件。
答案 0 :(得分:0)
以下内容应将“malicious.txt”重命名为apkfile的名称,扩展名为“.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)
请注意,您只能重命名一次文件名(在第一次重命名后,您将无法访问旧名称)
有关 os.path.join 和 os.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