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

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

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

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

アノテーション

アノテーションとは、特定のコードに対して、メタデータを注釈として付与することを指します。また、付与したメタデータ自体をアノテーションと呼ぶ場合もあります。

Python

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

Q&A

解決済

2回答

1187閲覧

新しいファイルを作成、保存したい

jagaimo_potato

総合スコア4

Keras

Kerasは、TheanoやTensorFlow/CNTK対応のラッパーライブラリです。DeepLearningの数学的部分を短いコードでネットワークとして表現することが可能。DeepLearningの最新手法を迅速に試すことができます。

YOLO

YOLOとは、画像検出および認識用ニューラルネットワークです。CベースのDarknetというフレームワークを用いて、画像や動画からオブジェクトを検出。リアルタイムでそれが何になるのかを認識し、分類することができます。

ファイル

ファイルとは、文字列に基づいた名前又はパスからアクセスすることができる、任意の情報のブロック又は情報を格納するためのリソースです。

アノテーション

アノテーションとは、特定のコードに対して、メタデータを注釈として付与することを指します。また、付与したメタデータ自体をアノテーションと呼ぶ場合もあります。

Python

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

0グッド

0クリップ

投稿2020/04/19 19:06

##やりたいこと
input.txt のIMG_◯◯.jpg以下の部分をIMG_〇〇.txtというファイルを作ってそこに書き込みたい。

IMG_◯◯.jpg以下の部分は必要に応じて書き換え作業を行っているがその部分はおそらく大丈夫なので、そこの部分の記述は無視してもらっても大丈夫です。

↓今回書いたコード

main.py

1import os 2 3INPUT_TXT = "input.txt" 4OUTPUT_DIR = "outputs" 5 6HEIGHT = 3744 7WIDTH = 5616 8 9CATEGORY_TO_NUM = { 10 "b": 0, 11 "n": 1, 12 "u": 2 13} 14 15with open(INPUT_TXT) as f: 16 lines = f.readlines() 17 18outputs = {} 19current_key = '' 20 21for line in lines: 22 if line.startswith("IMG_"): 23 outputs[line] = [] 24 current_key = line 25 else: 26 splited = line.split(",") 27 x = int(splited[0]) 28 y = int(splited[1]) 29 w = int(splited[2]) 30 h = int(splited[3]) 31 c = CATEGORY_TO_NUM[splited[4].strip()] 32 33 x_center = x + w / 2 34 y_center = y + h / 2 35 36 x_center /= WIDTH 37 y_center /= HEIGHT 38 w /= WIDTH 39 h /= HEIGHT 40 41 output_s = f"{c} {x_center} {y_center} {w} {h}" 42 outputs[current_key].append(output_s) 43 44for key, value in outputs.items(): 45 output_fname = f"{os.path.splitext(key)[0]}.txt" 46 #output_fname = key.replace("jpg", "txt") 47 with open(os.path.join(OUTPUT_DIR, output_fname), mode='w') as f: 48 f.write('\n'.join(value))

↓input.txt

input.txt

1IMG_2012-09-26T09-00-01.jpg 24640,3132,17,15,u 34882,3158,16,24,u 4707,3273,23,19,u 5IMG_2012-09-26T09-00-03.jpg 65218,3156,32,24,b 7IMG_2012-09-26T09-00-05.jpg 85528,3106,38,27,b 94139,3164,28,21,b 10691,3258,35,19,b 11516,3319,21,28,b 125272,3146,31,29,b 13IMG_2012-09-26T09-00-07.jpg 145552,3140,29,15,b 151167,3164,40,25,u 16IMG_2012-09-26T09-00-09.jpg 171958,2622,20,16,b 18543,3316,36,23,b 19795,3248,44,23,b 20IMG_2012-09-26T09-00-11.jpg 213394,2160,32,22,b 22784,3236,20,16,b

#エラーメッセージ

Traceback (most recent call last): File "main.py", line 48, in <module> with open(os.path.join(OUTPUT_DIR, output_fname), mode='w') as f: FileNotFoundError: [Errno 2] No such file or directory: 'outputs/IMG_2012-09-26T09-00-01.txt\n'

存在しないファイルに書き込もうとしているためエラーが起こってしまっているのだと思いますが、ファイルが存在しない場合はあたらしくファイルを作って書き込むにはどうしたら良いでしょうか?

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

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

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

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

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

guest

回答2

0

FileNotFoundError: [Errno 2] No such file or directory: 'outputs/IMG_2012-09-26T09-00-01.txt\n'

まず、この文字列後尾に入ってる\nを削除する必要があります
次に、この記述だとカレントディレクトリにあるoutputフォルダにファイルを作る、ということになろうかと思いますが、このカレントディレクトリのoutputフォルダというのは存在してるでしょうか。
これが存在してないと、同様のエラーが出ます

投稿2020/04/19 22:58

y_waiwai

総合スコア87774

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

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

jagaimo_potato

2020/04/21 04:11 編集

記述を忘れていましたがoutputs というファイルは存在します。 おかげさまで\nを削除することができました。ありがとうございました。
guest

0

自己解決

17行目と18行目のlineの部分をline.strip()に書き換えることで、作成したいファイルの名前の最後に\nがついてしまうのを改善し、下から二行目の前にos.makedirs(OUTPUT_DIR, exist_ok=True)を追加することでエラーをなくしました。

投稿2020/04/21 04:15

jagaimo_potato

総合スコア4

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問