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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

14437閲覧

for文の出力結果をcsvファイルに改行して、1行1行全て順番に出したい

MOSMOS2

総合スコア20

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2018/04/01 15:41

前提・実現したいこと

for文の出力結果をcsvファイルに改行して、1行1行全て順番に出したい

ここに質問の内容を詳しく書いてください。
for文で出力結果をcsvに書き込みたいのですが、どのようにしたらよいでしょうか。
下記のコードのsumの一個一個の結果を改行してcsvファイルに書き込みたいです。
よろしくお願いいたします。

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーメッセージ

該当のソースコード

# python 3.6 i = 0 k = 0 n = 100 l = 100 for k in range (l): for i in range (n): distance = np.linalg.norm(X_2[k:]-X[i:]) sum = sum + distance print(sum) sum = 0

試したこと

import csv して、writecsvとか色々やってみた
ここに問題に対して試したことを記載してください。

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

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

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

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

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

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

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

guest

回答3

0

sum.py

python

1import csv 2 3n = 3 4l = 3 5sum = 0 6filename = "sum.csv" 7with open(filename, 'w', newline="") as f: 8 fieldnames = ["k", "sum"] 9 writer = csv.DictWriter(f, fieldnames=fieldnames) 10 writer.writeheader() 11 12 for k in range(l): 13 for i in range(n): 14 # distance = np.linalg.norm(X_2[k:]-X[i:]) 15 distance = k * 100 + i 16 sum = sum + distance 17 18 row = {"k": k, "sum": sum} 19 writer.writerow(row) 20 sum = 0

実行例
イメージ説明

参考情報

  • [Python] csvやtsvの読み書きを行う(csvモジュールの利用)

https://www.yoheim.net/blog.php?q=20171003

  • CSVファイルの読み書き

https://www.python-izm.com/advanced/csv/

  • PythonでCSVの読み書きを行う方法【初心者向け】

https://techacademy.jp/magazine/15638

投稿2018/04/01 22:23

katoy

総合スコア22324

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

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

MOSMOS2

2018/04/02 12:57

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

0

ベストアンサー

printの出力先を書き出し用のファイルにしてあげれば行けますよ。

print(sum)

Python

1with open("tmp.csv", "a") as file: 2 print(sum, file=file)

にする。

もっとも、現在のコードでも標準出力をファイルにリダイレクトすればターミナル上で書き出させることも出来ます。

python calc_distance.py > tmp.csv

として吐き出すことも出来ます。用途によりけりですが。

投稿2018/04/01 16:14

tachikoma

総合スコア3601

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

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

tachikoma

2018/04/01 16:15

sumはPythonの予約語の一つなので、変数名に使うのは極力避けたほうがいいです。
MOSMOS2

2018/04/02 12:57

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

0

csv.writer.writerowかcsv.writer.writerowsを使えば問題なくできるでしょう。
前者はcsvの行に対応するリストを一度の呼び出しで1つずつ渡してあげれば使えます。後者はcsvに対応する二重リストを受け取ります。

参考:
PythonでCSVの読み書き - Qiita

投稿2018/04/01 15:55

編集2018/04/01 15:55
hayataka2049

総合スコア30933

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

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

MOSMOS2

2018/04/02 12:58

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問