У меня есть такие данные. строки разделяются запятой.
"India1,India2,myIndia "
"Where,Here,Here "
"Here,Where,India,uyete"
"AFD,TTT"
То, что я пытаюсь сделать, это поместить их все в один столбец (один под другим). Таким образом, это станет таким
India1
India2
myIndia
Where
Here
Here
Here
Where
India
uyete
AFD
TTT
Затем я сохраняю уникальные, которые ведут к этому
India1
India2
myIndia
Where
Here
India
uyete
AFD
TTT
Итак, у меня есть первые данные в формате .txt, и я попытался использовать для этого numpy.
это мой код
#!/usr/bin/python
import numpy as np
# give a name to my data
file_name = 'path to my data/test.txt'
# set my output
with open ( 'output.txt' , 'w' ) as out:
# read all the lines
for n , line in enumerate ( open ( file_name ).readlines ( ) ):
# split each stirg from another one by a comma
item1 = file_name.split ( ',' )
myList = ','.join ( map ( str , item1 ) )
item2 = np.unique ( myList , return_inverse=True )
# save the data into out
out.write ( item2 )
Я получал TypeError: expected a character buffer object
Я искал его и нашел несколько сообщений типа TypeError: ожидается объект символьного буфера - при попытке сохранить целое число в текстовый файл
и если я добавил out.seek ( 0 )
, я все равно получил ту же ошибку
но, изменив его на out.write ( str(item2 ))
благодаря TypeError: ожидается объект символьного буфера, я не получите никакой ошибки, вывод показывает это
(массив(['/путь к файлу/test.txt'], dtype='|S29'), массив([0]))
Ниже приведено решение, которое я пытался использовать.
import csv
data = []
def remove_quotes(file):
for line in file:
yield line.strip ( '"\n' )
with open ( 'test.txt' ) as f:
reader = csv.reader ( remove_quotes ( f ) )
for row in reader:
data.extend ( row )
Ошибки нет, но и data
не генерируется
file_name.split ( ',' )
. Что вы ожидали от этого? - person OneCricketeer   schedule 21.12.2016unique_everseen
в разделе рецепты документациюitertools
. - person Peter Wood   schedule 21.12.2016comma
- person nik   schedule 21.12.2016unique_everseen
- person nik   schedule 21.12.2016myList
— это строка, а не список. Вы присоединилиitem1
обратно к запятым, которые вы разделили, поэтому по существу воссоздали разделенные запятымиline
- person OneCricketeer   schedule 21.12.2016item1 = file_name.split ( ',' )
- person nik   schedule 21.12.2016'path to my data/test.txt'.split(',')
?? - person OneCricketeer   schedule 21.12.2016'path to my data/test.txt'.split(',')
, также если я используюmyList = " ".join ( map ( str , item1 ) ) the same empty output
- person nik   schedule 21.12.2016item1
, вероятно, должны быть с отступом - person OneCricketeer   schedule 21.12.2016myList
получает только последнийitem1
, потому что он вне цикла for - person OneCricketeer   schedule 21.12.2016ValueError: I/O operation on closed file
- person nik   schedule 21.12.2016