2016-11-28 9 views
0

私は、アドレスフィールドを含むCSVファイルを持っています。 CSVファイルには、以下のようにすべての大文字小文字の説明がありますが、append(行[1])にtitle()スニペットを使用する際には助けが必要です。CSVファイルのTitle()の使用

append.title(row[1]) but it does not work. 

    In the CSV File --------------Needs to be: 

    1234 PRESTON ROAD -------- 1234 Preston Road 
    1245 JACKSON STREET ------- 1245 Jackson Street 
    8547 RAINING COURT ------- 8547 Raining Court 


with open('C:\\Users\\Jake\\Desktop\\My Files\\Python Files\\PermitData.csv', 'rb') as f: 
    reader = csv.reader(f) 
    next (reader) 
    data = list(reader) 

PermitData = [] 

for row in data: 
    PermitData.append(row[0]),PermitData.append(row[1]),PermitData.append(row[2]), 
    PermitData.append(row[3]),PermitData.append(row[4]),PermitData.append(row[5]), 
    PermitData.append(row[6]) 

results = PermitData 

for result in results: 
    print result 

f.close() 

私はCSVファイル内のすべての行を繰り返し処理していた理由は、編集されたものとオリジナルを交換する前に、一時ファイルとして編集したCSVファイルを保存する必要がある:私はやって試してみました。私は実際のプロジェクトを行うことで学んでいるので、Pythonと明確に結びついているわけではないので、質問とコーディングの愚かさを許してください。あなたの親切な助言と支援を提供してください。

+0

よりよくすることは、あなたのファイルと何がettanany – ettanany

+0

おかげ出力として期待のいくつかの行を追加されるだろう、私はアドレスをCSVファイルに概説されているかを示すためにポストを編集していると私はアドレスを要求する方法であることを。 –

答えて

1

次のコードは、あなたが求めて出力を持つoutput.csvという名前の新しいファイルを作成します。

import csv 

with open('C:\\Users\\Jake\\Desktop\\My Files\\Python Files\\output.csv', 'w') as out: 
    with open('C:\\Users\\Jake\\Desktop\\My Files\\Python Files\\PermitData.csv', 'rb') as f: 
     reader = csv.reader(f) 
     out.write(next(reader)[0].replace('\t', ' ') + '\n') 
     data = list(reader) 
     for item in data: 
      item = item[0].split(' ') 
      out.write(' '.join(
       [item[0], 
       item[1].title(), 
       item[2].title()]) + '\n') 

何をしたいことは、結果を印刷するだけであれば、次のようにしてみてください:

import csv 

results = [] 

with open('permitData.csv', 'rb') as f: 
    reader = csv.reader(f) 
    next(reader) 
    data = list(reader) 
    for item in data: 
     item = item[0].split(' ') 
     results.append(' '.join(
      [item[0], 
      item[1].title(), 
      item[2].title()])) 

出力:

>>> for result in results: 
...  print result 
... 
1234 Preston Road 
1245 Jackson Street 
8547 Raining Court 
0

タイトルケースに変換する文字列にtitle()を呼び出す必要があります。これは動作するはずです:

append(row[1].title()) 
0

はこれを試してみてください:

PermitData = [] 

with open('C:\\Users\\Jake\\Desktop\\My Files\\Python Files\\PermitData.csv', 'rb') as f: 
    reader = csv.reader(f) 
    headers = next (reader) 

    for row in reader: 
     row = row[:1]+ [row[1].title()] + row[2:] # Assuming row[1] is your address field you need in a title case. 
     PermitData.append(row) 


for result in PermitData: 
    print result 

また、あなたは、ファイルを開くためのwith構文を使用しているときにf.close()を呼び出す必要がないことに注意してください。あなたが終了したら ファイルは自動的に閉じますwith

関連する問題