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

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

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

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

Q&A

解決済

2回答

1091閲覧

python出力結果をテキストファイルに保存

hanaaaa

総合スコア5

Python

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

0グッド

0クリップ

投稿2020/10/26 07:16

前提・実現したいこと

pythonで実行した結果を逐一テキストファイルに保存していきたいです。
しかし、実行結果のタイプがNoneTypeとなりwriteで保存することができません。
このような場合どう対処すればよいでしょうか。

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

Label: 1, F,M(1) --------------------------------------------------------------------------- TypeError Traceback (most recent call last) <ipython-input-39-e32c3f1d686c> in <module> 27 i=str(i) 28 i=print("Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5])) ---> 29 f.write(i+'\n') 30 31 f.close() TypeError: unsupported operand type(s) for +: 'NoneType' and 'str'

該当のソースコード

jupyternotebook

1# ラベルデータの読み込み 2 3flower_dics={} 4i=1 5 6 7label_dataf=open('fiw/fiwlist/label_new.txt','r') 8 9f=open('fiw/fiwlist/label_hozon.txt','w') #ラベルデータ読み込みを保存しようとしてみた 10 11 12for line in label_dataf: 13 line=line.rstrip() 14 cols=line.split() 15 16 assert len(cols) == 6 17 18 19 labelno = cols[0] 20 start = int(cols[1]) 21 end = int(cols[2]) 22 gender_1 = cols[3] 23 gender_2 = cols[4] 24 kinship = cols[5] 25 flower_dics[labelno] = (start, end) 26 27 i=str(i) 28 i=print("Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5])) 29 f.write(i+'\n') 30 31f.close()

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

Label: 1, F,M(1) Label: 2, M,F(4) Label: 3, F,M(5) Label: 4, M,F(5) Label: 5, F,M(1) Label: 6, M,F(4) Label: 7, M,M(4) Label: 8, M,M(1) Label: 9, M,M(2) Label: 10, M,M(2) Label: 11, M,M(1) Label: 12, M,M(4) Label: 13, F,F(1) Label: 14, F,F(4) Label: 15, F,M(5) Label: 16, M,F(5) Label: 17, F,M(4) Label: 18, M,F(1) Label: 19, F,F(5) Label: 20, F,F(5) Label: 21, F,F(1) Label: 22, F,F(4) Label: 23, F,F(1) Label: 24, F,F(4) Label: 25, F,F(1) Label: 26, F,F(4) Label: 27, F,F(1) Label: 28, F,F(4) Label: 29, F,F(2) Label: 30, F,F(2) Label: 31, M,F(4) Label: 32, F,M(1) Label: 33, M,M(4) Label: 34, M,M(1) Label: 35, M,F(0) Label: 36, F,M(0) Label: 37, M,M(0) Label: 38, M,M(0) Label: 39, M,F(2) Label: 40, F,M(2) Label: 41, M,F(2) Label: 42, F,M(2) Label: 43, F,M(5) Label: 44, M,F(5) Label: 45, F,F(0) Label: 46, F,F(0) Label: 47, F,M(0) Label: 48, M,F(0) Label: 49, F,F(1) Label: 50, F,F(4) Label: 51, F,F(1) Label: 52, F,F(4) Label: 53, M,F(5) Label: 54, F,M(5) #。。。。。続く

プログラムの実行結果はこのようなものです。
このままテキストファイルに保存したいと考えています。
ご指摘よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

print()が戻り値返さなというだけでは。
多分意図してるのはこうなんだろう。

diff

1- i=print("Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5])) 2+ i="Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5])

投稿2020/10/26 07:43

gentaro

総合スコア8947

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

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

hanaaaa

2020/10/26 07:49

ご返答ありがとうございます。 私の知識不足でした...ご指摘通りに実行し、解決いたしました。
guest

0

ベストアンサー

i=print("Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5]))

ではなく、

i="Label: {}, {},{}({})".format(cols[0],cols[3],cols[4],cols[5])

としましょう。
print文はNoneしか返しません

投稿2020/10/26 07:40

y_waiwai

総合スコア88163

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

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

hanaaaa

2020/10/26 07:51

迅速なご回答ありがとうございます。 無事実行することができました。一番にご返答頂いたため、ベストアンサーとさせていただきます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.31%

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

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

質問する

関連した質問