2016-07-01 6 views
0

Я хотел бы сохранить объект pandas.DataFrame в CSV-файл (используя DataFrame.to_csv()). Чтобы сделать его простым, вот ситуация; мой проект «Algos» содержит папку «ПВЗС» с файлом .txt под названием «plop.txt»:TypeError: Невозможно преобразовать объект '_io.TextIOWrapper' в str неявно

1,2 
3,4 
5,6 

Мой сценарий здесь:

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.name +" .csv ")' вместо 'Table.to_csv (dossier + fichier +" .csv ")' –

+0

Он работает, когда мы используем fichier.name; Я не получил то, что ожидал, но написал 'fichier.name [: len (fichier.name) - 4] +" .csv "вместо' dossier + fichier + ".csv" 'исправляет проблему. Спасибо большое :) –

+0

Рад помочь - вы можете использовать только 'fichier.name [: - 4]', BTW. –

ответ

0

Похоже, вы переназначить fichier на объект файла на L7, использовать новую переменную вместо этого!

+0

Вот он, я добавил полную консольную обратную связь –

+0

Я исправил ошибку, но, к сожалению, она дает мне ту же ошибку в том же месте. –

+0

Обновлен мой ответ –