質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

2回答

688閲覧

Python:20秒以内の動画を一括削除できるプログラムを作りたい!

grasan

総合スコア10

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

1グッド

1クリップ

投稿2020/04/20 06:56

■目的

20秒以下の動画ファイルを一括消去するプログラムの作成

■問題点

指定の動画ファイルを読み込ませて、20秒以下であれば削除。
という所までは成功したのですが、
これをフォルダ内の全ファイルに適応させていきたいと
思っているのですが、
行き詰まっております。

どなたかご教授いただけないでしょうか?

■コード

import glob
import os
import cv2

動画の各種情報を取得

video_path = ("C:/Users/sho/OneDrive/5uhan_/0.mp4")
cap = cv2.VideoCapture(video_path)

動画のファイル名を取得・表示

basename = os.path.basename(video_path)
print("basename:{}".format(basename))

print(type(basename))

cap

print(cap)

動画の尺を取得・表示

scale = cap.get(cv2.CAP_PROP_FRAME_COUNT) / cap.get(cv2.CAP_PROP_FPS)

print("scale:{}".format(scale))

cap.release() # 動画のリリース

もし20秒以内なら削除

if scale <= 20:
os.remove(basename)

DrqYuto👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

以下の方法で、フォルダ内にあるファイルの一覧が取得できるので、それでループさせて処理すればいいでしょう

Python3入門 フォルダ内のファイル一覧を取得する方法

投稿2020/04/20 07:50

y_waiwai

総合スコア88042

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

grasan

2020/04/20 10:11

ありがとうございます!
guest

0

回答してくださった方のおかげで無事完成させることができました。
ありがとうございます!


import glob #
import os #
import cv2 #

5uchan内のmp4データを一括取得

file_list = glob.glob("C:/Users/sho/OneDrive/5uhan_/*.mp4") #

for video_path in file_list: #
"""
print(video_path) #
"""

cap = cv2.VideoCapture(video_path) # 変数capに動画パスを入れる """ print(cap) # capの中身を表示 """ video_name = os.path.basename(video_path) # video_nameにファイル名を入れる print("video_name:{}".format(video_name)) # ファイル名を表示 """ print(type(video_name)) # オブジェクトの型を表示 """ scale = cap.get(cv2.CAP_PROP_FRAME_COUNT) / cap.get(cv2.CAP_PROP_FPS) # 変数scaleに動画の尺を入れる print("scale:{}".format(scale)) # 動画の尺を表示 print() # 1行空ける cap.release() # 動画のリリース if scale <= 20: # 動画の尺をCheck os.remove(video_name) # 秒数以下なら削除

投稿2020/04/20 10:20

grasan

総合スコア10

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問