2016-07-01 18 views
0

pandas.DataFrameオブジェクトを.csvファイルに保存したいです(DataFrame.to_csv()を使用)。簡単にするために、ここに状況があります。TypeError: '_io.TextIOWrapper'オブジェクトを暗黙的にstrに変換できません

1,2 
3,4 
5,6 

私のスクリプトはここにある:私のプロジェクトのALGOSは ' 'plop.txt' と呼ばれるの.txtファイルとフォルダの 'PLIP' を含む

import numpy as np 
import pandas as pa 

# opening the file 
dossier = "Plip" 
fichier = "plop.txt" 
fichier = open(dossier + "/" + fichier) 
data = fichier.readlines() 

# creating the data frame 
Pair = [] 
Impair = [] 
for m in data: 
    impair = int(m[0:1]) 
    pair = int(m[2:3]) 
    Impair.append(impair) 
    Pair.append(pair) 

M = np.array([Impair, Pair]).transpose() 
Table = pa.DataFrame(M, columns = ["Impair", "Pair"]) 

#creating the .csv file 
Table.to_csv(dossier + fichier + ".csv") 

表はcorrecty作成されていますが、スクリプト返信:

runfile('C:/Users/******/Documents/PYTHON/Algos/truc.py', wdir='C:/Users/******/Documents/PYTHON/Algos') 
Traceback (most recent call last): 

    File "<ipython-input-110-3c7306b8d61d>", line 1, in <module> 
    runfile('C:/Users/******/Documents/PYTHON/Algos/truc.py', wdir='C:/Users/******/Documents/PYTHON/Algos') 

    File "C:\Users\******\Documents\Gratuiciels\WINPYTHON.3355\python-3.3.5\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 601, in runfile 
    execfile(filename, namespace) 

    File "C:\Users\******\Documents\Gratuiciels\WINPYTHON.3355\python-3.3.5\lib\site-packages\spyderlib\widgets\externalshell\sitecustomize.py", line 80, in execfile 
    exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace) 

    File "C:/Users/******/Documents/PYTHON/Algos/truc.py", line 30, in <module> 
    Table.to_csv(dossier + fichier + ".csv") 

TypeError: Can't convert '_io.TextIOWrapper' object to str implicitly 

私はPythonでかなり新しくなっていますので、できるだけ正確な回答をお願いします。

は事前

+0

'Table.to_csv(dossier + fichier +" .csv ")の代わりに' Table.to_csv(dossier + fichier.name + ".csv") 'を試してください –

+0

これはfichier.nameを使用するときに機能します。私は期待したものを得られなかったが、 'fichier.name [:len(fichier.name) - 4] +' 'dossier + fichier +" .csv "の代わりに.csv" 'を書いて問題を修正した。 ありがとうございました:) –

+0

喜んでお手伝いします。あなたは 'fichier.name [: - 4]'、BTWだけ使うことができます。 –

答えて

0

にありがとうあなたは代わりに新しい変数を使用し、L7上のファイルオブジェクトにfichierを再割り当てのように思えます!

+0

ここでは、私は完全なコンソールのフィードバックを追加しました –

+0

私は間違いを修正しましたが、残念ながら同じ場所でまったく同じエラーが表示されます。 –

+0

私の答えを更新しました –

関連する問題