2011-12-04 8 views
0

私は知りたい、xlrdの結果フォーマット。Python Xlrd結果フォーマット

は私がres.search

>>> temp1=sh.cell_value(rowx=2, colx=1) 
>>> x=re.search("Adam",'temp1') 
>>> x.group() 

Traceback (most recent call last): 
    File "<pyshell#58>", line 1, in <module> 
    x.group() 
AttributeError: 'NoneType' object has no attribute 'group' 

を実行しようとすると、コード

>>> sh.cell_value(rowx=2, colx=1) 
u'Adam Gilchrist xxxxxxxxxxxxxxxxxxxxx' 

は、今私は何を取得を参照してください。

  1. 最初に私は知りたいのですが、結果は「u」です。
  2. sh.cell_valueによって返される結果の形式は何ですか。整数、文字列などです
  3. 正規表現を実行できますか?

答えて

1

は、最初にあなたの質問に答える

  1. 私が知りたいまず、 'U' の結果とは何ですか? uはunicode文字列の修飾子です。したがって、u'Adam Gilchrist xxxxxxxxxxxxxxxxxxxxx'は、ユニコードでのテストを意味します。
  2. sh.cell_valueから返される結果の形式は何ですか?それは整数、文字列などですか?そのユニコード文字列
  3. 正規表現を実行できますか?はい、できますし、これはあなたがまたユニコードでパターンを指定するために持っている唯一のこと
temp1=u'Adam Gilchrist xxxxxxxxxxxxxxxxxxxxx' 
x=re.search(u'Adam',temp1)  
x.group()  
u'Adam' 

そのを行う方法です。

+0

私の実装は、Unicodeと通常の文字列で動作します。 –

+0

+1これは好ましい回答です。 –

1
  1. それはCELL_VALUEは、セルの値を返すUnicode文字列
  2. です。タイプはセルのタイプによって異なります。
  3. はい。 Unicode文字列で正規表現を使用できますが、コードが正しくありません。

コードでは、 "temp1"がre.searchに文字列として渡されます。変数temp1は渡されません。あなたが欲しい:

>>> x=re.search(u"Adam",temp1) 
+0

あなたの権利。私は間違いを修正しました。そして、私はtemp1をstr(temp)に変換しなければなりませんでした。ありがとう、相棒 。 –

+0

ようこそ。答えを受け入れるには、チェックマークが付いているはずです。それまでは、それは受け入れられた答えを持たないものとしてそれを挙げるでしょう。 –

+0

-1 @CarlF .:パターンがASCIIのみを含む場合は、申し訳ありませんが、実装は「動作します」。ユニコードデータがあり、ユニコードパターンを使用します。 –