驗證CSV文件中的所有列的數據類型我有CSV文件這樣通過UNIX
dsdgh|234|@jhsjdh||jdhjdhfu|123|
#45ghf|123|laiej|||b8#hfj|
|hyrhyf|123||fhyr|@#$%|
等。
列數可以等於100.上面的文件也是管道分離的。
我要檢查每列的數據類型,即一列是否是數字或字母或字母
,並希望重定向結果txt文件
請幫幫我,要達到這個
感謝
驗證CSV文件中的所有列的數據類型我有CSV文件這樣通過UNIX
dsdgh|234|@jhsjdh||jdhjdhfu|123|
#45ghf|123|laiej|||b8#hfj|
|hyrhyf|123||fhyr|@#$%|
等。
列數可以等於100.上面的文件也是管道分離的。
我要檢查每列的數據類型,即一列是否是數字或字母或字母
,並希望重定向結果txt文件
請幫幫我,要達到這個
感謝
假設在列的每一行數是一樣的,你可以使用這個腳本:
import re
import sys
input_file = open(sys.argv[1])
cols = None
for line in input_file.readlines():
fields = line.split('|')
if not cols:
cols = map(lambda _: 'empty', fields)
for i, field in enumerate(fields):
if field == '':
continue
if re.match(r'^[0-9]+$', field):
if cols[i] == 'empty':
cols[i] = 'numeric'
elif cols[i] == 'alphabetic':
cols[i] = 'alphanumeric'
elif re.match(r'^[^0-9]+$', field):
if cols[i] == 'empty':
cols[i] = 'alphabetic'
if cols[i] == 'numeric':
cols[i] = 'alphanumeric'
else:
cols[i] = 'alphanumeric'
print '|'.join(cols)
只是保存到文件(script.py
在這個例子中),然後運行:
$ python script.py <path_to_file_with_columns>
是每一行中的列數一樣嗎? – qzb
是的沒有。每列都相同 – Chandan