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

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

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

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

Q&A

1回答

1354閲覧

例外処理で文字列や空白が出てきたときの処理

masa7555

総合スコア0

例外

例外(exception)とは、プログラムの処理実行中に発生する、通常の処理の続行を妨げる特殊な事象のことを呼びます。この「例外」が発生した場合に、現在の処理を中断し、変わりに別の処理を実行させる事を「例外処理」と呼びます。

例外処理

例外処理(Exception handling)とは、プログラム実行中に異常が発生した場合、通常フローから外れ、例外として別の処理を行うようにデザインされたプログラミング言語構造です。

0グッド

0クリップ

投稿2021/06/10 09:36

編集2021/06/11 03:09

前提・実現したいこと

ここに質問の内容を詳しく書いてください。
ツイートを読み込み時間帯ごとに分け出力するシステムを作成
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

(1)-------------------------クラスタ2 ツイート数328を例外処理させてそのあとにあるツイートを読み込ませたい
ツイート
(1)-------------------------クラスタ2 ツイート数3285 2019/01/01 06:41:57 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/QJWNU9OEIW
1010 2019/02/08 15:05:25 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/MXfcSbbRvI
102 2019/01/03 13:56:25 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/ysbrhiEjtA
1070 2019/02/10 07:54:53 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/z1govkNv1R
1072 2019/02/10 09:11:24 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/NCrqH6ER25
1073 2019/02/10 09:40:18 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/7bRMpriq42
1099 2019/02/10 18:20:11 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/6oOsWw2u55
1116 2019/02/11 14:45:12 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/jw8hEkN0Rm
1173 2019/02/13 13:19:39 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/ZlmmPQaT6T
1196 2019/02/14 10:15:36 35.4641346 133.0635437 I'm at 松江駅 in 松江市, 島根県 https://t.co/vyGMM2Ib74
1行目から読み込ませていきたいが1行目でエラーが出るので例外処理をしたい
エラーメッセージ
ValueError: invalid literal for int() with base 10: '(1)-------------------------クラスタ2'

該当のソースコード

import sys

counter = [0] * 8

fp = open('/content/drive/MyDrive/result_tweet.txt')

for line in fp.readlines(): # 1行ずつ読み込み
line = line.replace("\n", "") # 改行コードを削除
line_list = line.split("\t") # タブで分割し,リストに保管

(1)-------------------------クラスタ2 ツイート数328 のパターンだった場合の例外処理

空白行だった場合の例外処理

try:
arg=sys.argv[1]
fp=open(arg,'r')
except ValueError:
pass

line_list_2 = line_list[0].split(" ") # 半角空白で分割し,リストに保管
line_list_3 = line_list_2[0].split(":") # :で分割し,リストに保管

if 0 <= int(line_list_3[0]) and int(line_list_3[0]) <= 2:
counter[0] += 1

elif 3 <= int(line_list_3[0]) and int(line_list_3[0])<= 5:
counter[1] += 1

elif 6<= int(line_list_3[0]) and int(line_list_3[0]) <= 9:
counter[2] += 1

elif 10<= int(line_list_3[0]) and int(line_list_3[0]) <=12:
counter[3] += 1

elif 13<= int(line_list_3[0]) and int(line_list_3[0]) <=15:
counter[4] += 1

elif 16<= int(line_list_3[0]) and int(line_list_3[0]) <=18:
counter[5] += 1

elif 19<= int(line_list_3[0]) and int(line_list_3[0]) <=21:
counter[6] += 1

else:
counter[7] += 1

print(counter)

試したこと

try:do_something
except:
ここに問題に対して試したことを記載してください。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

y_waiwai

2021/06/10 10:57

言語はなんでしょうか。 そして、しつもんはなんでしょう
masa7555

2021/06/11 03:11

python try-exceptでツイートの1行目を例外処理させたい
guest

回答1

0

import sys counter = [0] * 8 fp = open('result_tweet.txt', encoding="utf-8") for line in fp.readlines(): # 1行ずつ読み込み line = line.replace("\n", "") # 改行コードを削除 line_list = line.split("\t") # タブで分割し,リストに保管 # (1)-------------------------クラスタ2 ツイート数328 のパターンだった場合の例外処理 # 空白行だった場合の例外処理 # try: # arg=sys.argv[1] # fp=open(arg,'r') # except ValueError: # pass line_list_2 = line_list[0].split(" ") # 半角空白で分割し,リストに保管 #print(line_list_2) if len(line_list_2)<3: continue line_list_3 = line_list_2[2].split(":") # :で分割し,リストに保管 try: if 0 <= int(line_list_3[0]) and int(line_list_3[0]) <= 2: counter[0] += 1 elif 3 <= int(line_list_3[0]) and int(line_list_3[0]) <= 5: counter[1] += 1 elif 6 <= int(line_list_3[0]) and int(line_list_3[0]) <= 9: counter[2] += 1 elif 10 <= int(line_list_3[0]) and int(line_list_3[0]) <= 12: counter[3] += 1 elif 13 <= int(line_list_3[0]) and int(line_list_3[0]) <= 15: counter[4] += 1 elif 16 <= int(line_list_3[0]) and int(line_list_3[0]) <= 18: counter[5] += 1 elif 19 <= int(line_list_3[0]) and int(line_list_3[0]) <= 21: counter[6] += 1 else: counter[7] += 1 except ValueError: continue print(counter)

投稿2021/06/15 08:01

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問