2013-02-28 3 views
0

Исходя из фона PHP, я изучаю, как использовать Python.Возврат указателя Позиция

Я пытаюсь вернуть индекс позиции, если содержание находятся в haystack от Это не похоже на работу needle

haystack= open("haystack.wav",'r') 
needle = open("needle.wav",'r') 
nedOffset = needle.read()[:46] 

print(haystack.index(nedOffset)) 

, я получаю сообщение об ошибке:

Traceback (most recent call last): 
    File "test.py", line 5, in <module> 
    print(haystack.index(ned[:46])) 
AttributeError: '_io.TextIOWrapper' object has no attribute 'index' 

Как исправить ?

В PHP я хотел бы сделать:

$needle = file_get_contents("needle.wav", false, null, 46); 
$haystack = file_get_contents("heystack.wav"); 
echo strpos($haystack,$needle); 

ответ

2

Вы должны прочитать в строке из haystack, а не только needle. Что-то вроде:

haystack= open("haystack.wav",'r').read() 

или

with open("haystack.wav",'r') as inf: 
    haystack = inf.read() 
+0

К сожалению. полностью забыл о стоге сена –

+0

Теперь я получаю другую ошибку: 'Файл 'C: \ Python33 \ lib \ encodings \ cp1252.py", строка 23, в декоде return codecs.charmap_decode (input, self.errors, decoding_table) [ 0] UnicodeDecodeError: кодек 'charmap' не может декодировать байт 0x8f в позиции 5: символьные карты до ' –

+0

@ I'll-Be-Back: Это совершенно другая проблема, которая потребует другого вопроса. (Кроме того, это не может быть вашей полной трассировкой, поскольку она не показывает, на какой строке она происходит). –

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