2013-09-13 3 views
2

Привет, так что я пытаюсь сделать что-то очень простоеКак импортировать текстовый файл в массив в Python (Pyramid)

У меня есть Array с тонной предложений используются случайным образом для уведомления DIV slideDown. Поскольку я не хочу иметь очень длинную 1 строку в PyCharm, я решил, что могу просто импортировать предложения из txt-файла в мой Array.

Я нашел this и this поэтому я импортировал numpy, и используя код ниже, однако, он ломает (и пропускает мои сообщения об ошибках) на success_msgs линии, я не получаю ошибку тоже.

def create_request(self): 
    # text_file = open("success_requests.txt", "r") 
    # lines = text_file.readlines() 
    # print lines 

    success_msgs = loadtxt("success_request.txt", comments="#", delimiter="_", unpack=False) 
    #success_msgs = ['The intro request was sent successfully', "Request sent off, let's see what happens!", "Request Sent. Good luck, may the force be with you.", "Request sent, that was great! Like Bacon."] 

Любые мысли? :(


Мой текстовый файл (который находится в той же папке, что и файл ру:

The intro request was sent successfully_ 
Request sent off, let's see what happens!_ 
Request Sent. Good luck, may the force be with you._ 
Request sent, that was great! Like Bacon._ 

enter image description here

Debugger
enter image description here

мой Защиту genfromtxt

def genfromtxt(fname, dtype=float, comments='#', delimiter=None, 
      skiprows=0, skip_header=0, skip_footer=0, converters=None, 
      missing='', missing_values=None, filling_values=None, 
      usecols=None, names=None, 
      excludelist=None, deletechars=None, replace_space='_', 
      autostrip=False, case_sensitive=True, defaultfmt="f%i", 
      unpack=None, usemask=False, loose=True, invalid_raise=True): 

genfromtxt отладки:

enter image description here

ответ

1

Во-первых, скажи, чтобы использовать строку DTYPE с dtype='S72' (или какой-либо максимальное количество символов, которые вы ожидаете).

In [368]: np.genfromtxt("success_request.txt", delimiter='\n', dtype='S72') 
Out[368]: 
array(['The intro request was sent successfully_', 
     "Request sent off, let's see what happens!_", 
     'Request Sent. Good luck, may the force be with you._', 
     'Request sent, that was great! Like Bacon._'], 
     dtype='|S72') 

Или, если каждая строка заканчивается символом подчеркивания, и вы не хотите, чтобы включить подчеркивание, вы можете установить delimiter='_' и usecols=0 получить только первый столбец:

In [372]: np.genfromtxt("success_request.txt", delimiter='_', usecols=0, dtype='S72') 
Out[372]: 
array(['The intro request was sent successfully', 
     "Request sent off, let's see what happens!", 
     'Request Sent. Good luck, may the force be with you.', 
     'Request sent, that was great! Like Bacon.'], 
     dtype='|S72') 

Но нет причина, почему вы не можете просто загрузить файл без использования NumPy с

In [369]: s = open("success_request.txt",'r') 

In [379]: [line.strip().strip('_') for line in s.readlines()] 
Out[379]: 
['The intro request was sent successfully', 
"Request sent off, let's see what happens!", 
'Request Sent. Good luck, may the force be with you.', 
'Request sent, that was great! Like Bacon.'] 
+0

Я пытаюсь это, но до сих пор не работает :( 'S = [np.genfromtxt (" succe ss_request.txt ", delimiter = '\ n', dtype = 'S100')] success_msgs = [s]' Также возникают проблемы с открытым методом. –

+0

@Leon Вам не нужны ни эти квадратные скобки. достаточно «success_msgs = np.genfromtxt (« success_request.txt », delimiter = '_', usecols = 0, dtype = 'S72')' должно быть достаточно. 'genfromtxt' возвращает массив, поэтому вам не нужно составлять список из него с помощью скобок. – askewchan

+0

@ Leon попробуйте передать 'dtype = None', чтобы узнать, что произойдет ... –

Смежные вопросы