ここでの問題は、open()
に文字列を渡す必要があることです。 ask
は文字列を含む変数ですが、もう1つの文字列".csv"
を追加してファイル名にしたいと考えています。 Pythonで+
は文字列の連結演算子なので、ask+".csv"
はを意味し、askの内容には.csvが続きます。あなたが現在持っているのは、csv
属性のask
変数を探していて、エラーが発生します。ファイルを開くとき
ask = ask if ask.endswith(".csv") else ask+".csv"
with open(ask, "w") as file:
file.write(output)
がthe with
statementの私の使用に注意してください:
with open(ask+".csv", "w") as file:
file.write(output)
はまた、ユーザーがすでに拡張子を入力した最初の場合は、チェックをしたいかもしれません。読みやすく、例外が発生してもファイルが適切に閉じられるようにするのは良い方法です。
また、条件に基づいて簡単な変数の割り当てを行うには、ここではPython ternary operatorを使用しています(すでに".csv"
で終わっている場合はそれを設定し、それ以外の場合は連結します)。
また、出力が既にCSVファイルに適していると仮定しているため、拡張機能だけではCSVにはなりません。一般的にCSVデータを扱うときは、おそらくthe csv moduleをチェックしたいと思うでしょう。