2017-09-14 8 views
0

次にcsv.readerを読み込んでいますが、ある行の列の値と次。 2行目の郡は、ライン1の郡何かcsvファイルの1行の列の値と次の行の値をPythonを使用して比較します

次のコード行を比較を行い、私は間郡の値を比較したいと等しい場合

County1  C:/maps/map1.pdf 
County1  C:/maps/map2.pdf 
County2  C:/maps/map1.pdf 
County2  C:/maps/map3.pdf 
County3  C:/maps/map3.pdf 
County4  C:/maps/map2.pdf 
County4  C:/maps/map4.pdf 

:たとえば、私のデータはMaps.csvファイルでこのように見えた場合現在の行と前の行。

import csv. 

f = open("Maps.csv", "r+") 
ff = csv.reader(f) 

pre_line = ff.next() 
while(True): 
    try: 
     cur_line = ff.next() 
     if pre_line == cur_line: 
      print "Matches" 
     pre_line = cur_line 
    except: 
     break 

私は現在の値(以下を参照)を取得できますが、以前の値を取得する方法はわかりません。これは可能ですか?もしそうなら、誰か教えてください。 3日目には、csvファイルからpdfファイルを追加するスクリプトを作成し、私のモニターでコーヒーカップを投げようとしています。私はこれらを小さな部分に分け、より簡単なデータをパイロットとして使用しています。私のファイルははるかに大きいです。私はこのフォーラムに投稿するときに、一度に1つの問題に集中するようにアドバイスされました。これは私の最新の問題です。どのようなタックをとっても、私が望むようにデータを読み取ることができないようです。 Arrrggghhhhh。

+0

行だけのリストにあなたのcsvファイルを読み込む: '行=リスト(FF)'。今すぐlsのリストとしてメモリ内にcsv全体があります –

答えて

0

のpython 2.7を使用して

CurColor = row[color] 

は、すでに前の行を検索する方法を知っています。その列から必要な列を取得してみませんか?

import csv. 

f = open("Maps.csv", "r+") 
ff = csv.reader(f) 

pre_line = ff.next() 
while(True): 
    try: 
     cur_line = ff.next() 
     if pre_line[0] == cur_line[0]: # <-- compare first column 
      print "Matches" 
     pre_line = cur_line 
    except: 
     break 

以上単に:

pre_line = ff.next() 
for cur_line in ff: 
    if pre_line[0] == cur_line[0]: # <-- compare first column 
     print "Matches" 
    pre_line = cur_line 
0
import csv 

f = open("Maps.csv", "r+") 
# Use delimiters to split each line into different elements 
# In my example i used a comma. Your csv may have a different delimiter 
# make sure the delimiter is a single character string though 
# so no multiple spaces between "County1  C:/maps/map1.pdf" 
# it should be something like "County1,C:/maps/map1.pdf" 
ff = csv.reader(f, delimiter=',') 

COUNTY_INDEX = 0 

# each time ff.next() is called, it makes an array variable ['County1', 'C:/maps/map1.pdf '] 
# since you want to compare the value in the first index, then you need to reference it like so 
# the line below will set pre_line = 'County1' 
pre_line = ff.next()[COUNTY_INDEX] 
while(True): 
    try: 
     # the current line will be 'County1' or 'County2' etc...Depending on which line is read 
     cur_line = ff.next()[COUNTY_INDEX] 
     if pre_line == cur_line: 
      print "Matches" 
     pre_line = cur_line 
    except: 
     break 
関連する問題