python - os.rename PermissionError: [WinError 32]?
问题描述
我对 os.rename 了解不多,但实际上它适用于大部分 vedio,但是当它只剩下一个文件夹时它会发出错误,该文件夹的 vedios 只有少数可以重命名,而其他则不能. 我应该怎么办?
import os
import cv2
from moviepy.editor import VideoFileClip
import pandas as pd
class FileCheck():
def get_file_times(self, filename):
clip = VideoFileClip(filename)
file_time = self.timeConvert(clip.duration)
return file_time
def timeConvert(self, size):
M, H = 60, 60 ** 2
if size < M:
return str(size) + u's'
if size < H:
return u'%s min %s s ' % (int(size / M), int(size % M))
else:
hour = int(size / H)
mine = int(size % H / M)
second = int(size % H % M)
tim_srt = u'%s h %s min %s s ' % (hour, mine, second)
return tim_srt
def get_file_path(root_path, file_list, dir_list,deep):
dir_or_files = os.listdir(root_path)
for dir_file in dir_or_files:
dir_file_path = os.path.join(root_path, dir_file)
if os.path.isdir(dir_file_path):
dir_list.append(dir_file_path)
get_file_path(dir_file_path, file_list, dir_list,deep+1)
else:
if dir_file.find("py")!=-1 :
continue
file_list.append(dir_file_path)
if __name__ == '__main__':
df = pd.DataFrame(columns=['id','time', 'shine'])
fc = FileCheck()
root_path = r"./"
file_list = []
dir_list = []
get_file_path(root_path, file_list, dir_list,0)
#print(file_list)
s = "YJJ_"
for i in range(len(file_list)):
filename = file_list[i]
print(filename)
cap = cv2.VideoCapture(filename)
ftime = fc.get_file_times(filename)
df.loc[i] = [s+str(i), ftime, 0]
print("complete")
for i in range(len(file_list)):
filename = file_list[i]
ss = filename.split("D")[0]
os.rename(filename, ss + s + str(i)+".mov")
df.to_csv("result.csv",index=0)
我只想计算视频的时间。但我遇见
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'D45.mov' -> 'DJI_0001.mov'
解决方案
该错误意味着您无法更改所选文件,因为另一个进程正在使用它,因此这样做可能会破坏/崩溃另一个进程。
确保该文件未打开,并且未被其他程序使用,然后重试。
推荐阅读
- github - 使用 Travis 为 .NET Core 设置 CI
- reactjs - 使用 React native 以每分钟步数获得跑步/步行速度
- angular - 角度单元测试 - Karma Jasmine - CLI 为空白 - 未生成 karma-result xml
- bash - 超级终端在打开新标签时给我 JavaScript 错误代码 267
- python - Plotly YAxis TickText Python - 文本显示不正确
- javascript - freecodecamp 计算器未通过所有测试 15/16 - 测试 14 失败
- eclipse - 带有 devstyle explorer 浏览器文件夹箭头的 eclipse STS 4.7 是深色/黑色,在深色模式下看不到
- javascript - Algolia - 未捕获的、未指定的“错误”事件?
- eclipse - 如何修复 spark.read.format("parquet") 错误
- rust - 可变引用是否具有移动语义?