Tôi muốn viết dữ liệu mà tôi phải tạo biểu đồ thành tệp CSV. Tôi có danh sách 'thùng' của mình và tôi có danh sách 'tần số' của mình. Ai đó có thể cho tôi một số trợ giúp để viết chúng vào CSV trong các cột tương ứng của họ không?
IE BIN trong cột đầu tiên và tần số trong cột thứ hai
Tshepang
11.7K21 Huy hiệu vàng90 Huy hiệu bạc134 Huy hiệu đồng21 gold badges90 silver badges134 bronze badges
Hỏi ngày 10 tháng 10 năm 2013 lúc 17:42Oct 10, 2013 at 17:42
3
Câu trả lời Python 2 ban đầu
Ví dụ này sử dụng NO___TRANS___PRE___31 [thay vì NO___Trans___Pre___32] để tránh tạo một danh sách mới và phải giữ nó trong bộ nhớ. Nó cũng sử dụng các mô -đun CSV được tích hợp của Python, đảm bảo trốn thoát thích hợp. Là một phần thưởng bổ sung, nó cũng tránh sử dụng bất kỳ vòng lặp nào, vì vậy mã ngắn và súc tích.
import csv
from itertools import izip
with open['some.csv', 'wb'] as f:
writer = csv.writer[f]
writer.writerows[izip[bins, frequencies]]
Mã được điều chỉnh cho Python 3
Trong Python 3, bạn không cần không cần ___trans___pre___31 nữa. Bạn cũng không cần phải mở tệp ở chế độ nhị phân:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
Đã trả lời ngày 10 tháng 10 năm 2013 lúc 17:49Oct 10, 2013 at 17:49
Ludwik Trammerludwik TrammerLudwik Trammer
23.7K6 Huy hiệu vàng65 Huy hiệu bạc90 Huy hiệu Đồng6 gold badges65 silver badges90 bronze badges
5
Hm, tôi có thiếu một cái gì đó không? Điều này nghe có vẻ khá đơn giản:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
Đã trả lời ngày 10 tháng 10 năm 2013 lúc 17:48Oct 10, 2013 at 17:48
DirkrdirkrDirkR
4582 Huy hiệu bạc9 Huy hiệu Đồng2 silver badges9 bronze badges
Tệp = Mở ["Cột.TXT", "W"].
Nhà văn = CSV. người viết [tập tin].
Đối với w trong phạm vi [4]: lặp qua số nguyên 0-3 ..
username,email,firstname,middlename,lastname,userRole,isDontSendEmail
lmiller,,Lucie,Maria,MIller,,
psmith,,Peter,Paul,Smith,Master,false
script:
$out = @[]
$content = Import-Csv -Path ./Junk/output.csv
ForEach [$obj in $content] {
if [![$obj.userRole]] {
$obj.userRole = "Employee"
}
if [![$obj.isDontSendEmail]] {
$obj.isDontSendEmail = "true"
}
$out += $obj
}
$out | Export-Csv -Path ./Junk/output1.csv -NoTypeInformation
đầu ra CSV:
"username","email","firstname","middlename","lastname","userRole","isDontSendEmail"
"lmiller","","Lucie","Maria","MIller","Employee","true"
"psmith","","Peter","Paul","Smith","Master","false"
[Nếu câu trả lời hữu ích, xin đừng quên Upvote và/hoặc chấp nhận làm câu trả lời, cảm ơn bạn][If the reply was helpful please don't forget to upvote and/or accept as answer, thank you]
Trân trọng Baumgarten
Andreas Baumgarten
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Đọc và viết các tệp CSV This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing CSV Files
Làm cách nào để tạo hai cột thành tệp CSV?
Sử dụng chức năng Concatenate: Nhấp vào các chức năng văn bản và chọn Concatenate. Nhập A1 vào trường Text1, B1 trong trường Text2 và C1 trong trường Text3. Bấm OK. Các cột được kết hợp.
Làm thế nào để bạn viết các cột trong các tệp CSV Python?
Các bước sẽ được nối một cột trong tệp CSV là,.
Mở tệp 'input.csv' trong chế độ đọc và tạo đối tượng CSV.Reader cho tệp CSV này ..
Mở tệp 'output.csv' trong chế độ ghi và tạo đối tượng CSV.Writer cho tệp CSV này ..
Sử dụng đối tượng Reader, hãy đọc dòng tệp 'Input.csv' từng dòng. ....
column 1 name,column 2 name, column 3 name
first row data 1,first row data 2,first row data 3
second row data 1,second row data 2,second row data 3
...
Đóng cả đầu vào ..
Nói chung, ký tự phân tách được gọi là dấu phân cách và dấu phẩy không phải là người duy nhất được sử dụng. Các phân định phổ biến khác bao gồm tab [no___trans___pre___40], đại tràng [no___trans___pre___41] và các ký tự bán đại hội [no___trans___pre___42]. Phân tích đúng tệp CSV yêu cầu chúng tôi biết dấu phân cách nào đang được sử dụng.
Các tệp CSV đến từ đâu?
Các tệp CSV thường được tạo bởi các chương trình xử lý một lượng lớn dữ liệu. Chúng là một cách thuận tiện để xuất dữ liệu từ bảng tính và cơ sở dữ liệu cũng như nhập hoặc sử dụng nó trong các chương trình khác. Ví dụ: bạn có thể xuất kết quả của chương trình khai thác dữ liệu sang tệp CSV và sau đó nhập nó vào bảng tính để phân tích dữ liệu, tạo biểu đồ cho bản trình bày hoặc chuẩn bị báo cáo để xuất bản.
Các tệp CSV rất dễ làm việc với chương trình. Bất kỳ ngôn ngữ nào hỗ trợ đầu vào tệp văn bản và thao tác chuỗi [như Python] có thể hoạt động trực tiếp với các tệp CSV.
Phân tích các tệp CSV với thư viện CSV tích hợp Python
Thư viện NO___Trans___Pre___36 cung cấp chức năng cho cả đọc và ghi vào các tệp CSV. Được thiết kế để hoạt động ngoài hộp với các tệp CSV do Excel tạo, nó dễ dàng điều chỉnh để hoạt động với nhiều định dạng CSV khác nhau. Thư viện NO___TRANS___PRE___36 chứa các đối tượng và mã khác để đọc, ghi và xử lý dữ liệu từ và đến các tệp CSV.
Đọc các tệp CSV có NO___Trans___Pre___36
Đọc từ tệp CSV được thực hiện bằng đối tượng NO___Trans___PRE___46. Tệp CSV được mở dưới dạng tệp văn bản với chức năng Python, tích hợp NO___TRANS___PRE___47, trả về một đối tượng tệp. Điều này sau đó được chuyển đến NO___Trans___Pre___46, trong đó thực hiện công việc nặng nề.
Tại đây, tệp NO___Trans___PRE___49:
name,department,birthday month
John Smith,Accounting,November
Erica Meyers,IT,March
Đây là mã để đọc nó:
import csv
with open['employee_birthday.txt'] as csv_file:
csv_reader = csv.reader[csv_file, delimiter=',']
line_count = 0
for row in csv_reader:
if line_count == 0:
print[f'Column names are {", ".join[row]}']
line_count += 1
else:
print[f'\t{row[0]} works in the {row[1]} department, and was born in {row[2]}.']
line_count += 1
print[f'Processed {line_count} lines.']
Điều này dẫn đến đầu ra sau:
Column names are name, department, birthday month
John Smith works in the Accounting department, and was born in November.
Erica Meyers works in the IT department, and was born in March.
Processed 3 lines.
Mỗi hàng được trả về bởi NO___TRANS___PRE___46 là danh sách các phần tử NO___TRANS___PRE___51 chứa dữ liệu được tìm thấy bằng cách xóa các dấu phân cách. Hàng đầu tiên được trả về chứa các tên cột, được xử lý theo một cách đặc biệt.
Đọc các tệp CSV thành một từ điển không có ___trans___pre___36
Thay vì xử lý một danh sách các phần tử NO___Trans___PRE___51 cá nhân, bạn có thể đọc dữ liệu CSV trực tiếp vào một từ điển [về mặt kỹ thuật, từ điển được đặt hàng].
Một lần nữa, tệp đầu vào của chúng tôi, no___trans___pre___49 như sau:
name,department,birthday month
John Smith,Accounting,November
Erica Meyers,IT,March
Tại đây, mã để đọc nó như một từ điển lần này:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
1Điều này dẫn đến cùng một đầu ra như trước:
Column names are name, department, birthday month
John Smith works in the Accounting department, and was born in November.
Erica Meyers works in the IT department, and was born in March.
Processed 3 lines.
Các phím từ điển đến từ đâu? Dòng đầu tiên của tệp CSV được giả sử chứa các khóa để sử dụng để xây dựng từ điển. Nếu bạn không có những thứ này trong tệp CSV của mình, bạn nên chỉ định các khóa của riêng mình bằng cách đặt tham số tùy chọn NO___TRANS___PRE___55 cho một danh sách chứa chúng.
Tùy chọn Python CSV NO___Trans___PRE___46 Tham số
Đối tượng NO___Trans___Pre___46 có thể xử lý các kiểu khác nhau của các tệp CSV bằng cách chỉ định các tham số bổ sung, một số trong đó được hiển thị bên dưới:
8 Chỉ định ký tự được sử dụng để tách từng trường. Mặc định là dấu phẩy [no___trans___pre___59]."username","email","firstname","middlename","lastname","userRole","isDontSendEmail" "lmiller","","Lucie","Maria","MIller","Employee","true" "psmith","","Peter","Paul","Smith","Master","false"
0 Chỉ định ký tự được sử dụng để bao quanh các trường chứa ký tự phân cách. Mặc định là một báo giá kép [no___trans___pre___61].column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...
2 Chỉ định ký tự được sử dụng để thoát khỏi ký tự phân cách, trong trường hợp trích dẫn aren được sử dụng. Mặc định là không có ký tự thoát.column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...
Những thông số này xứng đáng được giải thích thêm. Giả sử bạn làm việc với tệp NO___TRANS___PRE___63 sau:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
3Tệp CSV này chứa ba trường: no___trans___pre___64, no___trans___pre___65 và no___trans___pre___66, được phân định bởi dấu phẩy. Vấn đề là trường dữ liệu cho trường NO___Trans___PRE___65 cũng chứa dấu phẩy để biểu thị mã zip.
Có ba cách khác nhau để xử lý tình huống này:
Sử dụng một dấu phân cách khác theo cách đó, dấu phẩy có thể được sử dụng một cách an toàn trong chính dữ liệu. Bạn sử dụng tham số tùy chọn NO___TRANS___PRE___58 để chỉ định dấu phân cách mới.
That way, the comma can safely be used in the data itself. You use the
8 optional parameter to specify the new delimiter."username","email","firstname","middlename","lastname","userRole","isDontSendEmail" "lmiller","","Lucie","Maria","MIller","Employee","true" "psmith","","Peter","Paul","Smith","Master","false"
Bao bọc dữ liệu trong trích dẫn Bản chất đặc biệt của Delimiter đã chọn của bạn bị bỏ qua trong các chuỗi được trích dẫn. Do đó, bạn có thể chỉ định ký tự được sử dụng để trích dẫn với tham số tùy chọn NO___TRANS___PRE___60. Miễn là nhân vật đó cũng không xuất hiện trong dữ liệu, bạn sẽ ổn.
The special nature of your chosen delimiter is ignored in quoted strings. Therefore, you can specify the character used for quoting with the
0 optional parameter. As long as that character also doesn’t appear in the data, you’re fine.column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...
Thoát khỏi các ký tự phân cách trong các ký tự thoát dữ liệu hoạt động giống như chúng trong các chuỗi định dạng, vô hiệu hóa việc giải thích nhân vật bị thoát ra [trong trường hợp này là dấu phân cách]. Nếu một ký tự thoát được sử dụng, nó phải được chỉ định bằng tham số tùy chọn NO___TRANS___PRE___62.
Escape characters work just as they do in format strings, nullifying the interpretation of the character being escaped [in this case, the delimiter]. If an escape character is used, it must be specified using the
2 optional parameter.column 1 name,column 2 name, column 3 name first row data 1,first row data 2,first row data 3 second row data 1,second row data 2,second row data 3 ...
Viết các tệp CSV có NO___Trans___Pre___36
Bạn cũng có thể ghi vào tệp CSV bằng đối tượng NO___Trans___PRE___72 và phương thức NO___Trans___PRE___73:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
4Tham số tùy chọn NO___TRANS___PRE___60 cho biết số NO___Trans___Pre___72 nhân vật nào sẽ sử dụng để trích dẫn các trường khi viết. Tuy nhiên, việc trích dẫn có được sử dụng hay không được xác định bởi thông số tùy chọn no___trans___pre___76: tham số tùy chọn:
- Nếu
6 được đặt thành NO___Trans___Pre___78, thì NO___TRANS___PRE___79 sẽ chỉ trích dẫn các trường nếu chúng chứa số NO___Trans___Pre___58 hoặc NO___Trans___Pre___60. Đây là trường hợp mặc định.name,department,birthday month John Smith,Accounting,November Erica Meyers,IT,March
- Nếu NO___Trans___Pre___76 được đặt thành NO___Trans___Pre___83, thì NO___TRANS___PRE___79 sẽ trích dẫn tất cả các trường.
- Nếu NO___Trans___Pre___76 được đặt thành NO___Trans___Pre___86, thì NO___TRANS___PRE___79 sẽ trích dẫn tất cả các trường chứa dữ liệu văn bản và chuyển đổi tất cả các trường số thành NO___Trans___Pre___88.
- Nếu NO___Trans___Pre___76 được đặt thành NO___Trans___Pre___90, thì NO___Trans___Pre___79 sẽ thoát khỏi các dấu phân cách thay vì trích dẫn chúng. Trong trường hợp này, bạn cũng phải cung cấp một giá trị cho tham số tùy chọn NO___TRANS___PRE___62.
Đọc lại tệp trong văn bản đơn giản cho thấy tệp được tạo như sau:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
5Viết tệp CSV từ một từ điển có NO___Trans___PRE___36
Vì bạn có thể đọc dữ liệu của chúng tôi vào một từ điển, nên chỉ công bằng rằng bạn cũng có thể viết nó từ một từ điển:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
6Không giống như NO___Trans___Pre___94, tham số no___trans___pre___55 là bắt buộc khi viết từ điển. Điều này có ý nghĩa, khi bạn nghĩ về nó: Không có danh sách NO___Trans___PRE___55, NO___Trans___Pre___97 có thể biết các khóa nào sẽ sử dụng để lấy các giá trị từ từ điển của bạn. Nó cũng sử dụng các khóa trong no___trans___pre___55 để ghi ra hàng đầu tiên dưới dạng tên cột.
Mã trên tạo tệp đầu ra sau:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
7Phân tích các tệp CSV với thư viện NO___TRANS___PRE___37
Tất nhiên, thư viện Python CSV không phải là trò chơi duy nhất trong thị trấn. Đọc các tệp CSV là có thể trong no___trans___pre___37. Rất khuyến khích nếu bạn có nhiều dữ liệu để phân tích.
username,email,firstname,middlename,lastname,userRole,isDontSendEmail
lmiller,,Lucie,Maria,MIller,,
psmith,,Peter,Paul,Smith,Master,false
7 là một thư viện Python nguồn mở cung cấp các công cụ phân tích dữ liệu hiệu suất cao và dễ sử dụng các cấu trúc dữ liệu. username,email,firstname,middlename,lastname,userRole,isDontSendEmail
lmiller,,Lucie,Maria,MIller,,
psmith,,Peter,Paul,Smith,Master,false
7 có sẵn cho tất cả các cài đặt Python, nhưng nó là một phần quan trọng của phân phối Anaconda và hoạt động rất tốt trong sổ ghi chép Jupyter để chia sẻ dữ liệu, mã, kết quả phân tích, trực quan hóa và văn bản tường thuật.Cài đặt NO___Trans___Pre___37 và các phụ thuộc của nó trong no___trans___pre___104 dễ dàng thực hiện:
Như đang sử dụng không ___ trans ___ pre ___ 105/không ___ trans___pre___106 cho các cài đặt Python khác:
Chúng tôi đã giành chiến thắng trong các chi tiết cụ thể về cách thức hoạt động của
username,email,firstname,middlename,lastname,userRole,isDontSendEmail
lmiller,,Lucie,Maria,MIller,,
psmith,,Peter,Paul,Smith,Master,false
7 hoặc cách sử dụng nó. Để điều trị chuyên sâu về việc sử dụng NO___Trans___Pre___37 để đọc và phân tích các bộ dữ liệu lớn, hãy xem bài viết tuyệt vời của Chaiwari Tiwari, làm việc với các tệp excel lớn trong gấu trúc.Đọc các tệp CSV có NO___Trans___Pre___37
Để hiển thị một số sức mạnh của các khả năng CSV của NO___Trans___Pre___37, tôi đã tạo ra một tệp phức tạp hơn một chút để đọc, được gọi là NO___Trans___Pre___111. Nó chứa dữ liệu về nhân viên công ty:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
8Đọc CSV vào NO___Trans___Pre___37 NO___Trans___Pre___113 rất nhanh và đơn giản:
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
9
Rằng nó: ba dòng mã và chỉ một trong số chúng đang thực hiện công việc thực tế.
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
14 mở, phân tích và đọc tệp CSV được cung cấp và lưu trữ dữ liệu trong một khung dữ liệu. In NO___Trans___PRE___113 kết quả trong đầu ra sau:bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
0Dưới đây là một vài điểm đáng chú ý:
- Đầu tiên,
7 đã nhận ra rằng dòng đầu tiên của CSV chứa tên cột và sử dụng chúng tự động. Tôi gọi đây là lòng tốt.username,email,firstname,middlename,lastname,userRole,isDontSendEmail lmiller,,Lucie,Maria,MIller,, psmith,,Peter,Paul,Smith,Master,false
- Tuy nhiên, NO___Trans___Pre___37 cũng đang sử dụng các chỉ số số nguyên dựa trên không trong số NO___Trans___Pre___113. Điều đó bởi vì chúng tôi đã nói với nó những gì chỉ số của chúng tôi nên là.
Hơn nữa, nếu bạn nhìn vào các loại dữ liệu của các cột của chúng tôi, bạn sẽ thấy
7 đã chuyển đổi đúng số NO___TRANS___PRE___120 và NO___Trans___PRE___121 Điều này dễ dàng được xác nhận ở chế độ tương tác:username,email,firstname,middlename,lastname,userRole,isDontSendEmail lmiller,,Lucie,Maria,MIller,, psmith,,Peter,Paul,Smith,Master,false
>>>
1bins = [ 1,2,3,4,5 ] freq = [ 9,8,7,6,5 ] f = open["test.csv", "w"] for i in xrange[len[bins]]: f.write["{} {}\n".format[bins[i], freq[i]]] f.close[]
Hãy để giải quyết vấn đề này một lần. Để sử dụng một cột khác làm chỉ mục NO___TRANS___PRE___113, hãy thêm thông số tùy chọn NO___TRANS___PRE___125:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
2Bây giờ trường NO___TRANS___PRE___126 là chỉ mục NO___TRANS___PRE___113 của chúng tôi:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
3Tiếp theo, hãy để sửa lỗi loại dữ liệu của trường NO___Trans___PRE___122. Bạn có thể buộc NO___Trans___Pre___37 để đọc dữ liệu như một ngày với tham số tùy chọn NO___TRANS___PRE___130, được định nghĩa là danh sách các tên cột để xử lý là ngày:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
4Lưu ý sự khác biệt trong đầu ra:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
5Ngày hiện được định dạng đúng, dễ dàng xác nhận ở chế độ tương tác:
>>>
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
6Nếu các tệp CSV của bạn không có tên cột trong dòng đầu tiên, bạn có thể sử dụng tham số tùy chọn NO___TRANS___PRE___131 để cung cấp danh sách các tên cột. Bạn cũng có thể sử dụng điều này nếu bạn muốn ghi đè các tên cột được cung cấp trong dòng đầu tiên. Trong trường hợp này, bạn cũng phải nói
import csv
with open['some.csv', 'w'] as f:
writer = csv.writer[f]
writer.writerows[zip[bins, frequencies]]
14 để bỏ qua các tên cột hiện có bằng cách sử dụng tham số tùy chọn NO___Trans___PRE___133:bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
7Lưu ý rằng, vì các tên cột đã thay đổi, các cột được chỉ định trong NO___Trans___PRE___125 và NO___TRANS___PRE___130 Các tham số tùy chọn cũng phải được thay đổi. Điều này bây giờ dẫn đến đầu ra sau:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
8Viết các tệp CSV có NO___Trans___Pre___37
Tất nhiên, nếu bạn có thể lấy dữ liệu của mình ra khỏi no___trans___pre___37, thì nó không làm bạn tốt. Viết NO___Trans___Pre___113 vào tệp CSV cũng dễ dàng như đọc một tệp. Hãy để ghi dữ liệu với tên cột mới vào tệp CSV mới:
bins = [ 1,2,3,4,5 ]
freq = [ 9,8,7,6,5 ]
f = open["test.csv", "w"]
for i in xrange[len[bins]]:
f.write["{} {}\n".format[bins[i], freq[i]]]
f.close[]
9Sự khác biệt duy nhất giữa mã này và mã đọc ở trên là cuộc gọi no___trans___pre___139 đã được thay thế bằng NO___Trans___PRE___140, cung cấp tên tệp. Tệp CSV mới trông như thế này:
username,email,firstname,middlename,lastname,userRole,isDontSendEmail
lmiller,,Lucie,Maria,MIller,,
psmith,,Peter,Paul,Smith,Master,false
0Sự kết luận
Nếu bạn hiểu những điều cơ bản của việc đọc các tệp CSV, thì bạn đã giành được một cách bị bắt gặp khi bạn cần đối phó với việc nhập dữ liệu. Hầu hết các tác vụ đọc, xử lý và viết CSV có thể dễ dàng được xử lý bằng thư viện Python NO___Trans___PRE___36 cơ bản. Nếu bạn có nhiều dữ liệu để đọc và xử lý, thư viện no___trans___pre___37 cũng cung cấp các khả năng xử lý CSV nhanh chóng và dễ dàng.
Có những cách khác để phân tích các tệp văn bản không? Tất nhiên! Các thư viện như antlr, ply và plyplus đều có thể xử lý phân tích cú pháp hạng nặng, và nếu đơn giản NO___Trans___PRE___51 Thao tác won won làm việc, luôn có các biểu thức thường xuyên.
Nhưng đó là những chủ đề cho các bài viết khác
Xem bây giờ hướng dẫn này có một khóa học video liên quan được tạo bởi nhóm Python thực sự. Xem cùng với hướng dẫn bằng văn bản để hiểu sâu hơn về sự hiểu biết của bạn: Đọc và viết các tệp CSV This tutorial has a related video course created by the Real Python team. Watch it together with the written tutorial to deepen your understanding: Reading and Writing CSV Files