2015-10-13 89 views
1

我有一個小的csv文件,它有兩列: 列A(其中包含隨機字符列表);列B(其中包含隨機數列表)。python - 從csv文件中的數字中識別字符

例CSV:
blpcfgokakmgnkcojhhkbfbldkacnbeo,695108
pjkljhegncpnkpknbcohdijeoejaedia,678425
apdfllckaahabafndbhieahigkjlhalf,651374
...

我需要從每一行(忽略數字)識別並提取只是字符,然後打印結果。
運行下面的代碼給出了兩列作爲輸出:

import csv 
with open('small.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print row 
+1

您應該在問題中包含示例csv,而不是鏈接到它。 –

+0

網站上有多個類似的問題。環視四周 – Joop

回答

0

你是幾乎沒有。在你的代碼的row變量將保存在文件中的行中的元素(這樣的csv將舉辦陸續這些元素之一:

['blpcfgokakmgnkcojhhkbfbldkacnbeo', '695108'] 
['pjkljhegncpnkpknbcohdijeoejaedia', '678425'] 
['apdfllckaahabafndbhieahigkjlhalf', '651374'] 
... 

)的列表。

所以,如果你只想打印與你必須改變你的代碼,這樣的字母部分:

import csv 
with open('small.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     print row[0] # note the additional [0]! 

這將只打印此列表,所以按照上面這個例子將打印的(第一要素

blpcfgokakmgnkcojhhkbfbldkacnbeo 
pjkljhegncpnkpknbcohdijeoejaedia 
apdfllckaahabafndbhieahigkjlhalf 
... 

0
import csv 
with open('small.csv', 'rb') as f: 
    reader = csv.DictReader(f) 
    data = {} 
    for row in reader: 
    for header, value in row.items(): 
     try: 
     data[header].append(value) 
     except KeyError: 
     data[header] = [value] 

char_values = data['A'] # extract Column A 
int_values = data['B'] # extract Column B 
0

在給出的例子中,下面的工作:

import csv 
with open('small.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     for each1 in row: 
      if each1.isalpha(): 
       print each1 

但是,如果在數據混合的值,你就需要去往下一個額外的水平,像這樣:

import csv 
with open('small.csv', 'rb') as f: 
    reader = csv.reader(f) 
    for row in reader: 
     for each1 in row: 
      item = "" 
      for each2 in each1: 
       if each2.isalpha(): 
        item +=each2 
      print item 
0

當U讀CSV你結束了一個字符的多個列表和一個號碼。轉置所有列表(請參閱zip()iterator.izip()函數),最後將列出所有字符和一個數字列表。只需打印您需要的那個。