尝试重命名目录中的所有文件时出现 FileNotFoundError
FileNotFoundError when trying to rename all the files in a directory
我正在编写 python 脚本来重命名给定文件夹中的所有文件。 python 脚本与 images/jaguar
文件一起存在于我的 j-l-classifier
中。我正在尝试 运行 以下脚本来获取文件夹中的每个文件并将其重命名为这种格式:
jaguar_[#].jpg
但它抛出以下错误:
Traceback (most recent call last):
File "/home/onur/jaguar-leopard-classifier/file.py", line 14, in <module>
main()
File "/home/onur/jaguar-leopard-classifier/file.py", line 9, in main
os.rename(filename, "Jaguar_" + str(x) + file_ext)
FileNotFoundError: [Errno 2] No such file or directory: '406.Black+Leopard+Best+Shot.jpg' -> 'Jaguar_0.jpg'
这是我的代码:
import os
def main():
x = 0
file_ext = ".jpg"
for filename in os.listdir("images/jaguar"):
os.rename(filename, "Jaguar_" + str(x) + file_ext)
x += 1
if __name__ == '__main__':
main()
os.listdir
仅 returns 文件名(不是文件路径...)
尝试以下方法
for filename in os.listdir("images/jaguar"):
filepath = os.path.join("images/jaguar",filename)
new_filepath = os.path.join("images/jaguar","Jaguar_{0}{1}".format(x,file_ext))
os.rename(filepath, new_filepath)
直言不讳几乎总是通向更幸福生活的途径
为了使用os.rename()
,您需要提供绝对路径。
我建议用 os.rename(os.path.expanduser(f"~/{whatever folders you have here}/images/jaguar/{filename}"), os.path.expanduser(f"~/{whatever folders you have here}/images/jaguar/Jaguar_{str(x)}{file_ext}")
替换第 9 行
os.path.expanduser()
允许您使用“~”语法来辅助 abs 文件路径。
我正在编写 python 脚本来重命名给定文件夹中的所有文件。 python 脚本与 images/jaguar
文件一起存在于我的 j-l-classifier
中。我正在尝试 运行 以下脚本来获取文件夹中的每个文件并将其重命名为这种格式:
jaguar_[#].jpg
但它抛出以下错误:
Traceback (most recent call last):
File "/home/onur/jaguar-leopard-classifier/file.py", line 14, in <module>
main()
File "/home/onur/jaguar-leopard-classifier/file.py", line 9, in main
os.rename(filename, "Jaguar_" + str(x) + file_ext)
FileNotFoundError: [Errno 2] No such file or directory: '406.Black+Leopard+Best+Shot.jpg' -> 'Jaguar_0.jpg'
这是我的代码:
import os
def main():
x = 0
file_ext = ".jpg"
for filename in os.listdir("images/jaguar"):
os.rename(filename, "Jaguar_" + str(x) + file_ext)
x += 1
if __name__ == '__main__':
main()
os.listdir
仅 returns 文件名(不是文件路径...)
尝试以下方法
for filename in os.listdir("images/jaguar"):
filepath = os.path.join("images/jaguar",filename)
new_filepath = os.path.join("images/jaguar","Jaguar_{0}{1}".format(x,file_ext))
os.rename(filepath, new_filepath)
直言不讳几乎总是通向更幸福生活的途径
为了使用os.rename()
,您需要提供绝对路径。
我建议用 os.rename(os.path.expanduser(f"~/{whatever folders you have here}/images/jaguar/{filename}"), os.path.expanduser(f"~/{whatever folders you have here}/images/jaguar/Jaguar_{str(x)}{file_ext}")
os.path.expanduser()
允许您使用“~”语法来辅助 abs 文件路径。