簡體   English   中英

os.rename上遇到“ OSError:[Errno 2]沒有這樣的文件或目錄”

[英]“OSError: [Errno 2] No such file or directory” encountered on os.rename

我在文件夾中存儲了許多圖像文件,分別存儲為0.png,1.png,...,x.png。 然后我必須以相反的順序重命名,即0-> x,1->(x-1),..,(x-1)-> 1,x-> 0。 我已經在python中編寫了以下代碼。

for filename in os.listdir("."):
    tempname = "t" + filename
    os.rename(filename, tempname)
for x in range(minx, maxx+1):
    tempname = "t" + str(x) + ".png"
    newname = str(maxx-x) + ".png"
    os.rename(tempname, newname)

我遇到以下錯誤:

OSError: [Errno 2] No such file or directory

我究竟做錯了什么? 有更聰明的方法嗎?

嘗試以下操作,它使用glob模塊獲取文件列表。 這應該包括完整路徑,否則os.rename可能會失敗:

import glob
import os

source_files = glob.glob(r'myfolder\mytestdir\*')
temp_files = ['{}.temp'.format(file) for file in source_files]
target_files = source_files[::-1]

for source, temp in zip(source_files, temp_files):
    os.rename(source, temp)

for temp, target in zip(temp_files, target_files):
    os.rename(temp, target)

請注意,如果您只想定位.png文件,則可以將全局行更改為*.png

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM