🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

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

Q&A

2回答

23098閲覧

python 書き出しするファイル名に変数をつかいたい

Tubasa1995

総合スコア83

Python

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

0グッド

0クリップ

投稿2019/12/11 23:11

下記のコードを書きました。
上手く動くのですが、唯一、出力のファイル名に変数xとzが表示されるようにしたいのですが
上手くいきません。formet関数を使ったのですが、よくわかりませんでした。

つまり、ここでやりたいこととして
出力ファイルが
cp_200M_0.csv

cp_200M_1.csv
のような形sw出力されると嬉しいのですができません。
別に上記のような名前でなくても、それぞれを区別できればかまいません。
何かいいアイデアはないでしょうか、、、、、、

import pandas as pd import numpy as np ############################################################################################## cp_200M = pd.read_csv("data/cp_200M.csv", header = None).values.tolist() cp_exp_ens = pd.read_csv("data/cp_exp_ensemble.csv", header = None).values.tolist() ############################################################################################## def count(x,y,z): sum_of_meet_number = 0 lst2 = [] for i in range(480): condition = np.sum((0.8 <= (x[i][z]/y[i][z])) & ((x[i][z]/y[i][z] <= 1.25))) if condition == 1: sum_of_meet_number = sum_of_meet_number + 1 lst2.append(i) np.savetxt('{ここに変数名"x"+"z"のような名前}.csv', lst2, delimiter=',') del lst2 ############################################################################################## print("mean200M") count(cp_200M,cp_exp_ens,0) print("rms200M") count(cp_200M,cp_exp_ens,1)

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

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

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

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

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

guest

回答2

0

filename = 'data/cp_200M_'+ x + '.csv'
np.savetxt(filename,...

ってなかんじで

投稿2019/12/11 23:29

y_waiwai

総合スコア88040

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

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

Tubasa1995

2019/12/12 00:13

filename = str(x)+str(z)+'.csv'という形にしたら、ファイル名がファイル内のすべての数値を含めた、とてつもなく長いファイル名になるのですが、ン位がいけないのでしょうか。
y_waiwai

2019/12/12 00:19

そりゃxとかzがそういう内容ならそうなって当然です そのナカミが何かってのはあなたしか知らないんだから、こっちに聞かれても困りますぜ で、そのファイル内のすべての数値をどうファイル名にしたいんですか?
Tubasa1995

2019/12/12 00:25

def count(x,y,z):に対して、 変数は count(cp_200M,cp_exp_ens,0) count(cp_200M,cp_exp_ens,1) の2つなので、 例えば、こんな家人になればうれしいです。 cp_200M_0.csv と cp_200M_1.csv
y_waiwai

2019/12/12 00:41

そいつの0と1をつかうなら、 filename = 'cp_200M_'+ z + '.csv' ですわな。 式の結果がどうなるかってのをわかるようにならないとコードは組めませんよ
guest

0

name引数を増やしてから、

np.savetxt(f'{name}{z}.csv', lst2, delimiter=',')

count(cp_200M,cp_exp_ens,0,'data/cp_200M')
count(cp_200M,cp_exp_ens,1,'data/cp_200M')

投稿2019/12/11 23:24

編集2019/12/11 23:37
shiracamus

総合スコア5406

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

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

Tubasa1995

2019/12/12 00:00

すいません、あまりpython詳しくないのですが、そのやり方ならformatを使わなくでもいいのですか?ここでcountはどのような役割ですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問