我不知道如何使用 Python 脚本重命名文件?

问题描述 投票:0回答:2

我尝试了 OS、Shutil、Path 库中的几种方法。所有这些都显示文件不存在的相同错误。它看起来是由反斜杠引起的问题。我试过正斜杠。我试着尽可能不使用斜线,但结果似乎是一样的。下面是代码,后面是错误。有人可以帮我克服这个问题吗?

`
import time
import os
old_path = r"S:\COMPONENTS\000-102352-COM\COMPONENTS\FOOT DRIVE END_025_300#.SLDPRT"
print(old_path)
old_name, ext = os.path.splitext(os.path.basename(old_path))
CurrTime = str(time.time())[5:15].replace(".", "_")
new_name = old_name + CurrTime
new_path = old_path.replace(old_name, new_name)
os.rename(old_path, new_path)
print(new_path)
`

错误如下

S:\COMPONENTS\000-102352-COM\COMPONENTS\FOOT DRIVE END_025_300#.SLDPRT
Traceback (most recent call last):
  File "C:\Users\***hidden***\PycharmProjects\AddRev\_EXP.py", line 11, in <module>
    os.rename(old_path, new_path)
FileNotFoundError: [WinError 2] The system cannot find the file specified: 'S:\\COMPONENTS\\000-102352-COM\\COMPONENTS\\FOOT DRIVE END_025_300#.SLDPRT' -> 'S:\\COMPONENTS\\000-102352-COM\\COMPONENTS\\FOOT DRIVE END_025_300#74649_9084.SLDPRT'

我尝试避免使用反斜杠以消除对编译器的任何混淆。我尝试使用多个库来重命名文件。无论输入的 old_path 是双斜杠还是单斜杠,错误都保持一致。

python debugging operating-system file-rename
2个回答
0
投票

看起来问题可能出在 old_path 变量中的反斜杠上。在 Python 中处理文件路径时,为您的操作系统使用正确的转义字符非常重要。对于 Windows,转义字符是反斜杠,因此您应该使用双反斜杠来表示路径中的单个反斜杠。

import time
import os

old_path = r"S:\\COMPONENTS\\000-102352-COM\\COMPONENTS\\FOOT DRIVE END_025_300#.SLDPRT"
print(old_path)

old_name, ext = os.path.splitext(os.path.basename(old_path))
CurrTime = str(time.time())[5:15].replace(".", "_")
new_name = old_name + CurrTime
new_path = old_path.replace(old_name, new_name)

os.rename(old_path, new_path)
print(new_path)

0
投票

报错提示找不到文件“S:\COMPONENTS -102352-COM\COMPONENTS\FOOT DRIVE END_025_300#.SLDPRT”。一个可能的原因是文件路径不正确或文件不存在。

您可以尝试以下步骤来确保文件存在且路径正确:

  1. 手动检查文件是否存在于指定路径 导航到目录。
  2. 仔细检查文件路径以确保没有拼写错误或 错误。
  3. 使用 os.path.exists() 函数检查文件是否存在于 指定的路径。如果函数返回 False,则表示 文件不存在或路径不正确。

确认文件存在且路径正确后,您可以尝试再次使用 os.rename() 函数重命名文件。

这是包含这些检查的更新代码片段:

import time
import os

old_path = r"S:\COMPONENTS\000-102352-COM\COMPONENTS\FOOT DRIVE END_025_300#.SLDPRT"
print(old_path)

# Check if the file exists
if not os.path.exists(old_path):
    print("File does not exist")
else:
    old_name, ext = os.path.splitext(os.path.basename(old_path))
    CurrTime = str(time.time())[5:15].replace(".", "_")
    new_name = old_name + CurrTime
    new_path = os.path.join(os.path.dirname(old_path), new_name + ext)

    # Rename the file
    try:
        os.rename(old_path, new_path)
        print("File renamed successfully")
        print(new_path)
    except Exception as e:
        print("Error while renaming file:", e)

此代码片段包括使用 os.path.exists() 检查文件是否存在。如果该文件不存在,它会打印一条消息,表明该文件不存在。如果文件存在,它会使用 os.rename() 函数重命名文件并打印一条消息,指示重命名是否成功。

© www.soinside.com 2019 - 2024. All rights reserved.