2015-06-19 31 views
5

Tôi có tệp CSV có các cột nhất định mà tôi cần trích xuất. Một trong những cột đó là một chuỗi văn bản mà từ đó tôi cần trích xuất các mục đầu tiên và cuối cùng. Tôi có một tuyên bố in trong một vòng lặp for mà nhận được chính xác những gì tôi cần nhưng không thể tìm ra cách để có được dữ liệu đó vào một danh sách hoặc dict. Không chắc chắn là tốt nhất để sử dụng.Đọc tệp CSV của CSV và chọn cột và ghi vào tệp CSV mới

Mã cho đến nay:

f1 = open ("report.csv","r") # open input file for reading 
users_dict = {} 
with open('out.csv', 'wb') as f: # output csv file 

writer = csv.writer(f) 
with open('report.csv','r') as csvfile: # input csv file 
    reader = csv.DictReader(csvfile, delimiter=',') 
    for row in reader: 
     print row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7] 
     users_dict.update(row) 
     #users_list.append(row['Address'].split(',')) 
     #users_list.append(row['Last Login DateTime']) 
     #users_list.append(row[5].split(',')[7]) 

print users_dict 

f1.close() 

Input từ file:

User Name,Display Name,Login Name,Role,Last Login DateTime,Address,Application,AAA,Exchange,Comment 
SUPPORT,SUPPORT,SUPPORT,124,2015-05-29 14:32:26,"Test Company,Bond St,London,London,1111 111,GB,[email protected],IS",,,LSE, 

Output trên bản in:

SUPPORT Test Company 2015-05-29 14:32:26 IS 
+1

Đây có phải là kết quả bạn muốn? Nếu không, đầu ra * làm * bạn muốn? –

+0

Đầu ra chính xác như cách tôi muốn, nó đưa nó vào một danh sách/dict hoặc viết vào một csv mới Tôi không thể làm việc. –

Trả lời

0

Với một số thử nghiệm cuối cùng tôi nhận được dòng để ghi các file csv:

for row in reader: 
    writer.writerow([row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7]]) 
0

Sử dụng mã này, tôi đã có những dòng bạn cần:

import csv 
f1 = open ("report.csv","r") # open input file for reading 
users_dict = {} 
with open('out.csv', 'wb') as f: # output csv file 
    writer = csv.writer(f) 
    with open('report.csv','r') as csvfile: # input csv file 
     reader = csv.DictReader(csvfile, delimiter=',') 
     for row in reader: 
      print row['User Name'],row['Address'].split(',')[0],row['Last Login DateTime'],row['Address'].split(',')[7] 
      users_dict.update(row) 
      #users_list.append(row['Address'].split(',')) 
      #users_list.append(row['Last Login DateTime']) 
      #users_list.append(row[5].split(',')[7]) 

    print users_dict 

f1.close() 

Những thay đổi chỉ:

  • Bao gồm các import csv ở đầu trang.
  • thụt mã ngay sau with open('out.csv' ......

Điều này giải quyết vấn đề của bạn?

+0

Xin lỗi tôi đã bỏ qua csv khi sao chép/dán mã vào câu hỏi. Vấn đề tôi đang gặp là lấy tất cả các hàng dữ liệu theo lệnh in dưới đây hoặc vào một biến hoặc được ghi vào một csv thứ hai. Lệnh in chính xác là dữ liệu tôi muốn. –

+0

hàng in ['Tên người dùng'], hàng ['Địa chỉ']. '(', ') [0], hàng [' Ngày đăng nhập cuối cùng '], hàng [' Địa chỉ ']. 7] –