0

私がやろうとしているのは、作成するファイルの名前をユーザーに尋ねてから、このファイルにいくつかのものを保存することです。

プログラムの私の部分は次のようになります。

    if saving == 1:
        ask=raw_input("Type the name file: ")
        fileout=open(ask.csv,"w")
        fileout.write(output)

フォーマットを .csv にしたいのですが、さまざまなオプションを試しましたが、うまくいかないようです。

4

3 に答える 3

5

ここでの問題はopen()、文字列を渡す必要があることです。askは文字列を含む変数ですが、他の文字列を追加し".csv"てファイル名にすることも必要です。python+では文字列の連結演算子なので、 ask の内容をask+".csv"意味し、その後に .csv が続きます。あなたが現在持っているのは、エラーをスローする変数のcsv属性を探していることです。ask

with open(ask+".csv", "w") as file:
    file.write(output)

ユーザーがすでに拡張子を入力しているかどうかを最初に確認することもできます。

ask = ask if ask.endswith(".csv") else ask+".csv"
with open(ask, "w") as file:
        file.write(output)

ファイルを開くときwithステートメントの使用に注意してください。より読みやすく、例外が発生した場合でもファイルが適切に閉じられるようにするため、良い方法です。

また、ここでは python三項演算子を使用して、条件に基づいて単純な変数の割り当てを行っています (既に で終わっている場合はそれ自体に ask を設定し".csv"、それ以外の場合は連結します)。

また、これは、出力が既に CSV ファイルに適していることを前提としています。拡張子だけでは CSV にはなりません。一般的に CSV データを扱うときは、おそらくcsv モジュールをチェックアウトする必要があります。

于 2012-05-01T00:08:43.973 に答える
2

ask+'.csv'必要な拡張子をユーザー入力の最後に連結するために使用する必要があります。

ただし、ファイルに.csv拡張子を付けるだけでは、コンマ区切りファイルにするのに十分ではありません。出力をフォーマットする必要があります。そのために使用csvwriterします。Python のドキュメントには、これを行う方法に関する簡単な例がいくつかあります。

フォーマットされたカンマ区切りの出力を自分で生成しようとしないことをお勧めします。これは驚くほど難しい作業であり、組み込み機能が存在する場合はまったく無意味です。

于 2012-05-01T00:08:51.783 に答える
0

あなたの変数は、の後askのタイプになります。したがって、拡張子 .csv を追加する場合は、次のようにする必要があります。stringraw_input

fileout = open(ask + ".csv", "w")

それはうまくいくはずです。

于 2012-05-01T00:09:49.850 に答える