数字が入っているテキストレコードがあります。私は5桁の数字だけを抽出し、残りはすべて残したいと思う。いくつかは複数の5桁の数字を持っていて、私は2番目の数字だけを取る。 いくつかのレコードには数字がありません。それは< 5桁です。だから私はitems [0]やitems [1]を使うと、 'list index of range'を返します。私は '5桁の数字ではない'のような音符を返すループを作る必要があることを理解していますが、どこでどのように。レコードは他の属性と関連付けられているため、レコードを除外することはできません。また、私は数値(&メモがない場合はnumまたは< 5桁)を列に入れて属性と一致させます。私は非常にPythonに新しいと助けを必要としています。テキストから特定の桁数をソートし、数字がない場合はノートを返します。
zipfile=csv.reader(csvfile,delimiter=' ', quotechar='|')
reader=[]
for row in zipfile:
value=re.findall(r'(\d{5})', str(row))
reader.append(value)
zipcode=[]
for items in reader:
if len(items)> 1:
zipcode.append(items[1])
else:
zipcode.append(items[0])
with open('C:\sample_Output.csv', 'wb') as myfile:
wr = csv.writer(myfile)
for val in zipcode:
wr.writerow([val])
サンプル入力:
as 34567
ds 34 fd
12234 12323 asds
sdfjd 57645 fdsn 23412
所望の出力:
34567
12323
23412
今後、これらの詳細を提供するために質問を[編集]してください。ご覧のように、これらのコメントはこれらのことを伝えるうえではあまり効果的ではなく、コメントが削除されてもそれ自体は問題にならないはずです。また、転記を見直して、廃止されたコメントを削除することを検討してください。 – tripleee
@tripleee今はるかに良い。しかし、行に単一の5桁の数字しか含まれていないとどうなるかはまだ分かりません。 – MYGz
@khanすべてのケースを指定してください。 – MYGz