Tôi đang sử dụng thư viện CSV của Ruby để phân tích cú pháp một số CSV. Tôi có một tệp CSV dường như được định dạng mà tôi đã tạo bằng cách xuất tệp Excel dưới dạng CSV.Ruby: không thể phân tích cú pháp tệp Excel được xuất dưới dạng CSV trong OS X
Tuy nhiên CSV.open(filename, 'r')
gây ra CSV::IllegalFormatError
.
Không có dấu phẩy hoặc dấu ngoặc kép trong tệp hoặc bất kỳ thứ gì khác mà tôi có thể thấy có thể gây ra sự cố.
Tôi nghi ngờ vấn đề có thể liên quan đến kết thúc dòng. Tôi có thể phân tích cú pháp dữ liệu được nhập theo cách thủ công thông qua trình chỉnh sửa văn bản (Aquamac). Nó chỉ là khi tôi thử với dữ liệu được xuất từ Excel (đối với OS X) mà vấn đề xảy ra. Khi tôi mở CSV đã xuất trong vim, tất cả văn bản xuất hiện trên một dòng, với ^M
xuất hiện giữa các dòng.
Từ tài liệu, có vẻ như bạn có thể cung cấp open
với dấu tách hàng; tuy nhiên tôi không chắc nó nên là gì trong trường hợp này.
cảm ơn rất nhiều - ước gì tôi có thể upvoted bạn hai lần cho hai bit thông tin hữu ích. – grifaton
Bạn có thể làm rõ những gì '? ,,? \ R' đang làm? Cảm ơn! –
? X trả về điểm mã cho ký tự x, tức là một số. Vì lý do nào đó, đó là những gì CSV.open hy vọng sẽ thấy. Vì vậy, chúng tôi xác định phân tách trường là ',' và dấu phân tách bản ghi là^M khác, còn gọi là 015, aka 13, còn gọi là CR. BTW, lệnh thay thế vim hoạt động vì '\ r' có nghĩa là CR trong mẫu nhưng NL thay thế, vì vậy nó không thực sự là một no-op. – DigitalRoss