Tôi đang tải lên tệp csv/tsv từ một biểu mẫu trong GAE và tôi cố gắng phân tích tệp bằng mô-đun csv python.Tải lên và phân tích cú pháp tệp csv bằng "dòng mới phổ quát" trong python trên Google App Engine
Giống như mô tả here, tệp được tải lên trong GAE là các chuỗi.
Vì vậy, tôi đối xử với tôi tải lên chuỗi một đối tượng tập tin giống như:
file = self.request.get('catalog')
catalog = csv.reader(StringIO.StringIO(file),dialect=csv.excel_tab)
Nhưng dòng mới trong các tập tin của tôi không nhất thiết phải '\ n' (nhờ trội ..), và nó tạo ra một lỗi:
Lỗi: ký tự dòng mới được nhìn thấy trong trường không được đánh dấu - bạn có cần mở tệp ở chế độ phổ-newline không?
Có ai biết cách sử dụng StringIO.StringIO để xử lý các chuỗi như tệp mở trong dòng chung-new không?
Theo các tài liệu Python, chế độ mặc định StringIO là newline phổ quát. Một người lạ có thể đang diễn ra trong tệp dữ liệu của bạn. – Calvin
@Calvin _ "Theo tài liệu Python, chế độ mặc định của StringIO là dòng mới phổ quát" _ Tôi không tìm thấy tài liệu nói điều đó ở đâu, có thể hiển thị nó không? – eyquem
@eyquem Đã được 2,5 năm, vì vậy tài liệu có thể đã thay đổi, nhưng http://docs.python.org/3.3/library/io.html?highlight=stringio#io.StringIO nói 'Đối số dòng mới hoạt động giống như của TextIOWrapper 'và TextIOWrapper nói' nếu dòng mới là Không, chế độ dòng mới phổ quát được bật. ' Nhưng sau đó StringIO có thể mâu thuẫn với điều này bằng cách nói 'Mặc định là không làm bản dịch mới.' – Calvin