强制在python中重命名文件

时间:2014-02-20 19:08:07

标签: python file

我想重命名文件,即使新名称存在,也没关系,它可以覆盖它。

my_location = os.path.realpath(os.path.join(os.getcwd(), os.path.dirname(__file__)))
for filename in os.listdir(my_location + "/static/data/bandsdaily/"):
    if filename.endswith(".json"):
        source = filename       
        destination = filename + ".old"

        print source, destination
        os.rename(source, destination)

我一直有这个错误:

20022014.json 20022014.json.old
Traceback (most recent call last):
  File "app/bandsdaily.py", line 89, in <module>
    os.rename(source, destination)
OSError: [Errno 2] No such file or directory

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

os.listdir()只返回 文件名,而不是完整路径。您正在尝试重命名当前工作目录中的文件而不是my_location + / static / data / bandsdaily /`。前面的路径:

path = os.path.join(my_location, "static/data/bandsdaily")
for filename in os.listdir(path):
    if filename.endswith(".json"):
        source = filename       
        destination = filename + ".old"

        print source, destination
        os.rename(os.path.join(path, source), os.path.join(path, destination))