如何在Python中更改文件名和扩展名?

如何在Python中更改文件名和扩展名?,python,Python,我想将位于路径/home/dina/A的名为恶意.txt的文件移动并重命名到新位置/home/dina/b,并使用基于apkName的新名称(例如A.apk或b.apk等)我希望最终名称具有.json扩展名,而不是.apk扩展名-例如a.json和b.json 我试过: import os os.rename("malicious.txt",apkName) 但是它删除了恶意.txt而不显示任何其他文件。以下内容应将“恶意.txt”重命名为扩展名为“.json”的apkfile的名称 请注意,

我想将位于路径
/home/dina/A
的名为
恶意.txt
的文件移动并重命名到新位置
/home/dina/b
,并使用基于
apkName
的新名称(例如
A.apk
b.apk
等)我希望最终名称具有
.json
扩展名,而不是
.apk
扩展名-例如
a.json
b.json

我试过:

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

但是它删除了
恶意.txt
而不显示任何其他文件。

以下内容应将“恶意.txt”重命名为扩展名为“.json”的apkfile的名称

请注意,您只能重命名一次文件名(第一次重命名后,您将无法访问旧名称)

有关os.path.joinos.path.sep

os.path.join(path,*path)

智能地连接一个或多个路径组件。返回值是path和*path的任何成员的串联,每个非空部分后面只有一个目录分隔符(os.sep),最后一个部分除外,这意味着如果最后一个部分为空,结果将仅以分隔符结尾。如果组件是绝对路径,则会丢弃所有以前的组件,并从绝对路径组件继续连接


在Windows上,遇到绝对路径组件(例如r'\foo')时,不会重置驱动器号。如果某个组件包含驱动器号,则会丢弃以前的所有组件并重置驱动器号。请注意,由于每个驱动器都有一个当前目录,因此os.path.join(“c:,“foo”)表示相对于驱动器c:(c:foo)上当前目录的路径,而不是c:\foo。

如果您可以在运行脚本之前和之后编写一些文件示例(例如my/path/file1.txt[enter]my/path/file2.txt),则更好。然后人们可以清楚地看到你想要做什么,以及你的script.apkname已经被称为a.apk有什么问题。我想将恶意的.txt改为a.json,所以我不知道如何编写只调用(a)而没有扩展名的apkname,然后将(.json)添加为新的extension@dina-见我的最新答案。jsonName获取apkName的第一部分(“a”)并添加“.json”扩展名,因此“a.apk”变成“a.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)