0

という文字列があり####I_AM_SAM,ます。私が欲しいのは、テキスト部分だけを使用することです。だから私はsplitそれを次のように使用して分割しようとしてline = f.readline().split(',' ,' ')f.readline()ました。line[0] がテキストを取得することを期待していましたが、これによりエラーが発生します。テキスト「I_AM_SAM」の前に 4 つのスペースがあることに注意してください。スペースバーを「#」記号で表しました。

line = f.readline().split(',' ,'    ')

TypeError: 整数が必要です

4

3 に答える 3

2

ちょうど使用strip()

In [34]: strs="    I_AM_SAM,"

In [35]: strs.strip(" ,") # pass a space " "and "," to strip
Out[35]: 'I_AM_SAM'
于 2012-11-23T14:21:39.510 に答える
2
line = f.readline().split(',' ,'    ')
  TypeError: an integer is required

の 2 番目の引数が原因splitで、整数でなければなりません:

S.split([sep[, maxsplit]]) -> 文字列のリスト

区切り文字列として sep を使用して、S の単語のリストを返します。maxsplit が指定されている場合、最大で maxsplit の分割が行われます。sep が指定されていないか、None の場合、空白文字列は区切り記号になり、\n空の文字列は結果から削除されます。

あなたの場合、必要line = f.readline().split(',')[0]です。の使用も検討してre.subください。

于 2012-11-23T14:25:50.323 に答える
0

Split は 2 つの引数を取ります。最初の引数は分割するセパレータ、2 番目の引数は分割の最大数です。したがって、このコード:

'Hello there, this is a line'.split (' ', 2)

'Hello'、'there'、'this is a line' の 3 つの文字列になります。

2 番目の引数を省略したい、または 1 にしたい (わからない、説明が十分に明確でない)。複数のキャラクターを分割する場合は、分割する複数の呼び出しが必要です。

これが期待した答えでない場合は、質問をより明確にしてください。何が得られると思いますか? 2 番目の引数を分割する理由は何ですか? もう 1 つ: リテラル文字列のスペースがタブの場合は、読みやすくするために \t と記述してください。

于 2012-11-23T14:26:46.633 に答える