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

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

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

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

Q&A

解決済

3回答

6144閲覧

Python CSVファイルに変数を追記

退会済みユーザー

退会済みユーザー

総合スコア0

CSV

CSV(Comma-Separated Values)はコンマで区切られた明白なテキスト値のリストです。もしくは、そのフォーマットでひとつ以上のリストを含むファイルを指します。

Python

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

0グッド

0クリップ

投稿2018/01/19 03:49

Python初心者です。
変数をcsvファイルに追記していくやり方がわからず困っています
a,b,c,dの4つの変数の中にそれぞれ数字を格納しています。

f = open('time.csv',"a")
f.write('a,b,c,d \n')
f.close()

今はこのようなプログラムです。
これでは a,b,c,d と文字が追記されてしまいます。

どのようにすれば数字が表示されるようになるのか
教えてほしいです。
できるだけ詳しくお願いしたいです。

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

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

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

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

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

guest

回答3

0

シングルコーテーション('')で文字を表すと文字列になってしまいますよ

python3

1a=10 2print(a) #10と表示される 3print('a') #aと表示される

投稿2018/01/19 04:12

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2018/01/19 04:46

本当にありがとうございます! おかけ様で解決することができました!
guest

0

ベストアンサー

Pythonのバージョンは3.6.3です。

a = 1 b = 2.2 c = "3" d = [4, 5, 6, 7] with open("time.csv", "a") as f: f.write("{0}, {1}, {2}, {3}\n".format(a, b, c, d)) f.close()

time.csvには以下の様に出力されます。
変数の型は問いません。

1, 2.2, 3, [4, 5, 6, 7]

投稿2018/01/19 04:23

micheleno13

総合スコア54

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

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

退会済みユーザー

退会済みユーザー

2018/01/19 04:43

本当にありがとうございます! おかげさまで解決することができました! すごくわかりやすかったです。
guest

0

まず、ソースコードは"</>"を押したときに出てくる 「ここに~」みたいなところに記述してください。

そのままだと、インデントが無視されます。

Pythonではインデントで意味が変わってきます。

for文とかだと、少しずれただけで対象外とか。

なので、"</>" を押して、その中に記述しましょう。


私は趣味でC++をやっています。Pythonはあまり( めったに? ) やりませんが。


これ丸投げ?

失礼ですが、ご自分で調べてみました?

'a,b,c,d \n' としたら当たり前、文字列の"a,b,c..."として解釈されます。

もし、

a = 100
b = 1
c = 2
d = 0

としたとき

"100,1,2,0 \n" としたいなら

文字列にして」埋め込みます。

入門系サイトにも載っているようなやり方だと、

Python

1a = 100 2# b~d も同様に 3 4e = str(a) + str(b) + str(c) + str(d) 5print e 6

ヒント:
数値を文字列に変換(str)

になりますね。

ですが、いろいろ読んでいたところ、

Python文字列操作マスター

の”値の埋め込み”の項目を見ると、

sprintfスタイル: '%s, %s' % ('Hello', 'World')
拡張sprintfスタイル: '%(a)s, %(b)s' % dict(a='Hello', b='World')
formatメソッド利用: '{0}, {1}'.format('Hello', 'World')

( 上記サイト("Python文字列操作マスター")より )

とあります。

私はCやC++を使うので、sprintfスタイルのほうがやりやすいかなと。

そういうので、数値を文字列に固めて writeする。

投稿2018/01/19 04:14

BeatStar

総合スコア4958

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

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

退会済みユーザー

退会済みユーザー

2018/01/19 04:44

解決できました! 丁寧な回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.49%

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

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

質問する

関連した質問