2017-12-21 17 views
1

ダミーの質問に申し訳ありませんが、私は多くのトピックを読んでいますが、私のコードはまだ.csvファイルを作成して保存しません。パンダでCSVファイルを保存することができません

import pandas as pd 
def save_csv(lista): 
    try: 
     print("Salvando...") 
     name_path = time.strftime('%d%m%y') + '01' + '.csv' 
     df = pd.DataFrame(lista, columns=["colummn"]) 
     df.to_csv(name_path, index=False) 
    except: 
     pass 

dados = [-0.9143399074673653, -1.0944355744868517, -1.1022400576621294] 
save_csv(dados) 

パス名は「DayMonthYear01.csv」(20121701.csv)です。

コードを実行すると終了しますが、ファイルは保存されません。

コードの出力は、ちょうど次のとおりです。

>>> 
RESTART: C:\Users\eduhz\AppData\Local\Programs\Python\Python36-32\testeCSV.py 
Salvando... 
>>> 

は、誰もが私が行方不明です何を知っていますか?

+0

'except exceptions'を' except except e'に変更し、 'pass'の代わりに' print(e) 'に置き換えてください。それはあなたがデータを適切に保存していない理由を教えてくれるでしょう。どのような例外がスローされているのかを知らなくても、単に 'pass'することはできません。 – Abdou

+0

ご返信ありがとうございます。例外は次のとおりです。 [Errno 13]アクセス権が拒否されました: '20121701.csv' –

+0

そのフォルダに書き込む権限がないようです。 'Documents'や' Desktop'のように別の場所にファイルを保存してください。管理者として 'IDLE'を開くこともできます。 – Abdou

答えて

0

タイムモジュールをインポートしましたか?私がしたことは、それを追加して、現在の作業ディレクトリの1つの列に3つのエントリを持つ21121701.csvを作成したことです。

import pandas as pd 
import time 

def save_csv(lista): 
     print("Salvando...") 
     name_path = time.strftime('%d%m%y') + '01' + '.csv' 
     df = pd.DataFrame(lista, columns=["colummn"]) 
     df.to_csv(name_path, index=False) 

dados = [-0.9143399074673653, -1.0944355744868517, -1.1022400576621294] 
save_csv(dados) 

try/exceptを削除すると、同じ名前のファイルが既に開いている場合にファイルのパーミッションエラーが発生します。あなたが書くことを試みているファイルを閉じる必要があります(少なくともウィンドウ上で)。

アブドゥーのコメントによれば、あなた(またはプログラム)がディレクトリへの書き込みアクセス権を持っていないと、許可エラーも発生します。

+0

はい、私は時間モジュールをインポートしました。 "Notepad ++"でスクリプトを実行していました。 IDLE(Python 3.6 32-bit)を使用していました。 ありがとうございます。 –

+0

私が提供したコメントで回答を編集してください。問題は、Notepad(管理者として開かれていない)がいくつかのディレクトリにアクセスできないため、その中で実行されるものがそれらのディレクトリに書き込めないという事実に起因する許可エラーです。 – Abdou

0

まず、@Abdouの回答として、私はエラーが何であるかを提供するコードを変更しました。

import pandas as pd 
import time 
def save_csv(lista): 
    try: 
     print("Salvando...") 
     name_path = time.strftime('%d%m%y') + '01' + '.csv' 
     df = pd.DataFrame(lista, columns=["colummn"]) 
     df.to_csv(name_path, index=False) 
    except Exception as e: 
     print(e) 
dados = [-0.9143399074673653, -1.0944355744868517, -1.1022400576621294] 
save_csv(dados) 

その後、私はそれが権限エラーによるものであったが分かった「パーミッション[ERRNO 13]は拒否されました:」(管理者としてオープンされずに)事実メモ帳に起因することはいくつかのディレクトリへのアクセス権を持っているので、何も実行されません。そのディレクトリ内には書き込めません。 管理者としてメモ帳を実行しようとしましたが、動作しませんでした。

解決策は、Python IDLEでコードを実行していました。

関連する問題