Mã này mở URL và nối vào /names
ở cuối và mở trang và in chuỗi thành test1.csv
:
import urllib2
import re
import csv
url = ["//www.example.com"]
bios = [u'/name1', u'/name2', u'/name3']
csvwriter = csv.writer[open["/test1.csv", "a"]]
for l in bios:
OpenThisLink = url + l
response = urllib2.urlopen[OpenThisLink]
html = response.read[]
item = re.search['[JD][.*?][\d+]', html]
if item:
JD = item.group[]
csvwriter.writerow[JD]
else:
NoJD = "NoJD"
csvwriter.writerow[NoJD]
Nhưng tôi nhận được kết quả này:
J,D,",", ,C,o,l,u,m,b,i,a, ,L,a,w, ,S,c,h,o,o,l,....
Nếu tôi thay đổi chuỗi thành ["jd", "trường luật columbia" ....] thì tôi sẽ nhận được
JD, Columbia Law School...]
Tôi không thể tìm thấy trong tài liệu làm thế nào để chỉ định dấu phân cách.
Nếu tôi cố gắng sử dụng delimeter
, tôi sẽ gặp lỗi này:
TypeError: 'delimeter' is an invalid keyword argument for this function
Trong blog này, chúng ta sẽ xem cách chúng ta có thể sử dụng người viết Python CSV để viết dữ liệu danh sách cho CSV. Trong phương thức đầu tiên, chúng tôi sẽ viết một danh sách vào tệp CSV bằng CSV.Writer []. chi tiết nhập khẩu hàng = [['Susjan', 'thứ 2', '2020', 'vật lý', 'a'], & nbsp; & nbsp; & nbsp; & nbsp; ['John', 'thứ 3', '2022', 'hóa học', 'b'], & nbsp; & nbsp; & nbsp; & nbsp; . & nbsp; write = csv.Writer [f] & nbsp; & nbsp; write.writerow [chi tiết] & nbsp; & nbsp; write.writerows [hàng] csv Đầu ra: Tên, Lớp, Năm, môn học, Lớp Susjan, 2, 2020, Vật lý, A John, 3, 2022, Hóa học, B Sam, 4, 2021, toán học, A,class,Year,Subject,Grade Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module. Dòng 2 đến 3: Chúng tôi đã tạo hai danh sách các chi tiết và hàng. Danh sách chi tiết sẽ đại diện cho tên của các cột và danh sách các hàng sẽ đại diện cho mỗi dữ liệu cột. to 3: We created two lists of details and rows. The details list will represent the names of the columns, and the rows lists will represent each column’s data. Dòng 6 đến 9: Chúng tôi mở một tệp studentdata.csv dưới dạng chế độ ghi [‘w,] để viết tệp. Bây giờ, chúng tôi đã tạo một ghi đối tượng bằng cách sử dụng csv.Writer [f]. Đầu tiên, chúng tôi viết tên của cột của CSV bằng danh sách chi tiết. Sau khi viết tên cột của CSV, chúng tôi sử dụng write.writerows [] và truyền vào chúng danh sách các hàng dưới dạng tham số để viết từng danh sách dưới dạng một hàng.: We open a file studentData.csv
as a write mode [‘w’] to write the file. Now, we created an object write using the csv.writer[f]. First, we write the names of the column of the csv using the details list. After writing the column names of the csv, we use the write.writerows[] and pass into them the rows list as a parameter to write each of the lists as a row. Trong phương thức này, chúng tôi sẽ viết hàng CSV bằng CSV.Writer []. Chương trình chi tiết cách sử dụng phương thức này để viết các hàng của CSV được đưa ra dưới đây: Dữ liệu nhập khẩu ; & nbsp; & nbsp; & nbsp; write = csv.Writer [tệp] & nbsp; & nbsp; write.writerows [dữ liệu] csv Ouput: Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module. Dòng 2 đến 3: Chúng tôi đã tạo hai danh sách các chi tiết và hàng. Danh sách chi tiết sẽ đại diện cho tên của các cột và danh sách các hàng sẽ đại diện cho mỗi dữ liệu cột.: We created one list of data which
elements are also a list. Each sublist will be treated as a separate row.1. Phương pháp: Python Viết danh sách vào CSV
Details = ['Name', 'class', 'Year',
'Subject','Grade']
rows = [ ['Susjan', '2nd', '2020', 'Physics','A'],
['John', '3rd', '2022',
'Chemistry','B'],
['Sam', '4th', '2021', 'Math','A']]
with open['studentData.csv', 'w'] as f:
write =
csv.writer[f]
write.writerow[Details]
write.writerows[rows]
Susjan,2nd,2020,Physics,A
John,3rd,2022,Chemistry,B
Sam,4th,2021,Math,A2. Phương pháp: Python Viết danh sách vào hàng CSV
data = [['a'], ['b'], ['c'],['d']]
file = open['alphabet.csv',
'w+',newline ='']
with file:
write = csv.writer[file]
write.writerows[data]
Dòng 6 đến 9: Chúng tôi mở một tệp studentdata.csv dưới dạng chế độ ghi [‘w,] để viết tệp. Bây giờ, chúng tôi đã tạo một ghi đối tượng bằng cách sử dụng csv.Writer [f]. Đầu tiên, chúng tôi viết tên của cột của CSV bằng danh sách chi tiết. Sau khi viết tên cột của CSV, chúng tôi sử dụng write.writerows [] và truyền vào chúng danh sách các hàng dưới dạng tham số để viết từng danh sách dưới dạng một hàng.: We open a file alphabet.csv as a write mode [‘w’] to write the file. We are also using the newline attribute, which helps to get the value into the new row. Now, we created an object to write using the csv.writer[file]. To write each of the lists as a row, we use the write.writerows[] and pass the data list as a parameter into them.
Từ đầu ra, chúng ta có thể thấy rằng tất cả những người con đã được viết như một hàng mới.
3. Phương pháp: Python Viết danh sách vào tiêu đề CSV
Trong phương pháp này, chúng tôi sẽ viết tiêu đề của tệp CSV.
Nhập khẩu .csv ',' w '] như f: & nbsp; & nbsp; Writer = csv.Writer [f] & nbsp; & nbsp; nhà văn.writerow [['thành phố', 'quốc gia', 'cấp bậc']] & nbsp; & nbsp; Writer.Writerows [Danh sách] csv
list = [[ 'New York', 'USA','A'],['Toronto', 'CANADA',
'A'],['Bejing','CHINA','B']]
with open['header.csv','w'] as f:
writer = csv.writer[f]
writer.writerow[['City', 'Country', 'Rank']]
writer.writerows[list]
Output:
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module.
Dòng 2 đến 3: Chúng tôi đã tạo một danh sách dữ liệu trong đó các phần tử cũng là một danh sách. Mỗi người phụ sẽ được coi là một hàng riêng biệt.: We created one list of data in which elements are also a list. Each sublist will be treated as a separate row.
Dòng 4 đến 7: Chúng tôi mở Xếp hạng Tệp.CSV dưới dạng chế độ ghi [‘W,] để ghi tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Đầu tiên, chúng tôi viết tên của cột CSV bằng cách sử dụng nhà văn [[‘Thành phố,‘ Quốc gia, ‘Xếp hạng]].: We open a file rank.csv as a write mode [‘w’] to write the file. Now, we created an object to write using the csv.writer[f]. First, we write the names of the column of the csv using the writerow [[‘City’, ‘Country’, ‘Rank’]].
Đầu ra cho thấy rằng chúng tôi đã viết thành công tiêu đề của tệp CSV.
4. Phương pháp: Python Viết một danh sách các yếu tố Tuple vào CSV
Phương pháp này sẽ chỉ ra cách chúng ta có thể viết loại phần tử bên trong danh sách thành CSV.
Các mục nhập khẩu = [[['a', 'sam'], 25], .csv ',' w '] như f: & nbsp; & nbsp; write = csv.Writer [f] & nbsp; & nbsp; write.writerows [mục] csv
items = [[['A', 'Sam'], 25], [['B', 'Rakesh'], 23], [['C',
'Kaira'], 42]]
with open['tuple.csv', 'w'] as f:
write = csv.writer[f]
write.writerows[items]
Output:
"['A', 'sam']", 25 "['b', 'rakesh']", 23 "['c', 'kaira']", 42,25
"['B', 'Rakesh']",23
"['C', 'Kaira']",42
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module.
Dòng 2 đến 3: Chúng tôi đã tạo một danh sách dữ liệu trong đó các phần tử cũng là một danh sách. Mỗi người phụ sẽ được coi là một hàng riêng biệt.: We created a list of items, and each element of the list is a tuple type.
Dòng 4 đến 7: Chúng tôi mở Xếp hạng Tệp.CSV dưới dạng chế độ ghi [‘W,] để ghi tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Đầu tiên, chúng tôi viết tên của cột CSV bằng cách sử dụng nhà văn [[‘Thành phố,‘ Quốc gia, ‘Xếp hạng]].: We open a file tuple.csv as a write mode [‘w’] to write the file. Now, we created an object to write using the csv.writer[f]. To write each of the list elements [tuple] as a row, we use the write.writerows [] and pass into them the items list as a parameter.
Đầu ra cho thấy rằng chúng tôi đã viết thành công tiêu đề của tệp CSV.
4. Phương pháp: Python Viết một danh sách các yếu tố Tuple vào CSV
Phương pháp này sẽ chỉ ra cách chúng ta có thể viết loại phần tử bên trong danh sách thành CSV. csv
with open['result.csv','a'] as f:
writer
= csv.writer[f]
writer.writerow[['city','New York']]
Output:
Các mục nhập khẩu = [[['a', 'sam'], 25], .csv ',' w '] như f: & nbsp; & nbsp; write = csv.Writer [f] & nbsp; & nbsp; write.writerows [mục],25
"['B', 'Rakesh']",23
"['C', 'Kaira']",42
city,New
York
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module.
Dòng 2 đến 3: Chúng tôi đã tạo một danh sách dữ liệu trong đó các phần tử cũng là một danh sách. Mỗi người phụ sẽ được coi là một hàng riêng biệt.: We open the result.csv file in the append mode because we want to add some more data to the existing csv file.
Dòng 4 đến 7: Chúng tôi mở Xếp hạng Tệp.CSV dưới dạng chế độ ghi [‘W,] để ghi tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Đầu tiên, chúng tôi viết tên của cột CSV bằng cách sử dụng nhà văn [[‘Thành phố,‘ Quốc gia, ‘Xếp hạng]].: Now, we created an object to write using the csv.writer[f]. To write each of the list elements as a row, we use the write.writerows [] and pass into them the items list as a parameter. But as now we have only one list, we will use the writerow[] method only.
Đầu ra cho thấy rằng chúng tôi đã viết thành công tiêu đề của tệp CSV.
4. Phương pháp: Python Viết một danh sách các yếu tố Tuple vào CSV
Phương pháp này sẽ chỉ ra cách chúng ta có thể viết loại phần tử bên trong danh sách thành CSV. csv
from itertools import zip_longest
item_1 = ['A', 'B', 'C', 'D']
item_2
= [1,2,3,4]
data = [item_1, item_2]
export_data = zip_longest[*data, fillvalue = '']
with open['item_zip.csv', 'w',
encoding="ISO-8859-1", newline=''] as file:
write = csv.writer[file]
write.writerow[["item_1", "item_2"]]
write.writerows[export_data]
Output:
Các mục nhập khẩu = [[['a', 'sam'], 25], .csv ',' w '] như f: & nbsp; & nbsp; write = csv.Writer [f] & nbsp; & nbsp; write.writerows [mục],item_2
A,1
B,2
C,3
D,4
"['A', 'sam']", 25 "['b', 'rakesh']", 23 "['c', 'kaira']", 42: We import the CSV module and zip_longest. This module is used for iteration in sequence order.
Dòng 2: Chúng tôi đã tạo một danh sách các mục và mỗi yếu tố của danh sách là loại tuple.: We created two lists item_1 and item_2, for the data iteration. We then combine both lists into a single list and name that list to data.
Dòng 3 đến 5: Chúng tôi mở một tệp Tuple.csv dưới dạng chế độ ghi [‘W,] để ghi tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Để viết từng phần tử danh sách [tuple] làm hàng, chúng tôi sử dụng write.writerows [] và truyền vào chúng danh sách các mục dưới dạng tham số.: We then call the method zip_longest to parallel iterate two lists.
5. Phương pháp: Python nối một danh sách vào CSV: We open a file item_zip.csv as a write mode [‘w’] to write the file. Now, we created an object to write using the csv.writer[f]. First, we write the names of the column of the csv, and after writing that, to write each of the lists as a row, we use the write.writerows[] and pass into them the rows list [export_data] as a parameter.
Phương pháp này sẽ chỉ ra cách chúng ta có thể nối bất kỳ dữ liệu mới nào vào CSV bằng cách sử dụng người viết Python.
Nhập khẩucsvwithopen ['result.csv', 'a'] là f: & nbsp; & nbsp; Writer = csv.Writer [f] & nbsp; & nbsp; Nhà văn.Writerow [['Thành phố', 'New York']]]
"['A', 'Sam']", 25 "['B', 'Rakesh']", 23 "['C', 'Kaira']", 42 City, New York
Dòng 2: Chúng tôi mở tệp result.csv trong chế độ phụ trợ vì chúng tôi muốn thêm một số dữ liệu khác vào tệp CSV hiện có. csv
Details = ['Name',
'class', 'Year', 'Subject','Grade']
rows = [ ['Susjan', '2nd', '2020', 'Physics','A'],
['John', '3rd',
'2022', 'Chemistry','B'],
['Sam', '4th', '2021', 'Math','A']]
with open['pipe_delimiter.csv', 'w'] as f:
write = csv.writer[f,delimiter='|']
write.writerow[Details]
write.writerows[rows]
Output:
Dòng 3 đến 4: Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Để viết từng phần tử danh sách dưới dạng một hàng, chúng tôi sử dụng write.writerows [] và truyền vào chúng danh sách các mục dưới dạng tham số. Nhưng như bây giờ chúng tôi chỉ có một danh sách, chúng tôi sẽ chỉ sử dụng phương thức writerow [].class|Year|Subject|Grade
Susjan|2nd|2020|Physics|A
John|3rd|2022|Chemistry|B
Sam|4th|2021|Math|A
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module.
Dòng 2 đến 3: Chúng tôi đã tạo một danh sách dữ liệu trong đó các phần tử cũng là một danh sách. Mỗi người phụ sẽ được coi là một hàng riêng biệt.: We created two lists of details and rows. The details list will represent the names of the columns, and the rows lists will represent each column’s data.
Dòng 6 đến 9: Chúng tôi mở một tệp studentdata.csv dưới dạng chế độ ghi [‘w,] để viết tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Chúng tôi cũng thêm một dấu phân cách thuộc tính bổ sung vào phương thức csv.Writer [] cùng với f. Đầu tiên, chúng tôi viết tên của cột của CSV bằng danh sách chi tiết. Sau khi viết điều đó, chúng tôi sử dụng write.writerows [] và chuyển danh sách các hàng dưới dạng tham số để viết từng danh sách dưới dạng một hàng.: We open a file studentData.csv as a write mode [‘w’] to write the file. Now, we created an object to write using the csv.writer[f]. We also add one extra attribute delimiter into the csv.writer[] method along with the f. First, we write the names of the column of the csv using the details list. After writing that, we use the write.writerows[] and pass the rows list as a parameter to write each of the lists as a row.
Đầu ra cho thấy dữ liệu tệp CSV của chúng tôi được tách ra khỏi dấu phân cách đường ống thay vì dấu phẩy.
8. Phương thức: Viết tệp CSV với ký tự trích dẫn tùy chỉnh
Trong phương thức này, chúng tôi sẽ sử dụng một số ký tự trích dẫn tùy chỉnh trong khi lưu dữ liệu vào định dạng CSV. Đối với điều đó, chúng tôi phải sử dụng thuộc tính trích dẫn = csv.quote_nonnumeric và quotechar như được hiển thị trong chương trình bên dưới.
chi tiết nhập khẩu hàng = [['Susjan', 'thứ 2', '2020', 'vật lý', 'a'], & nbsp; & nbsp; & nbsp; & nbsp; ['John', 'thứ 3', '2022', 'hóa học', 'b'], & nbsp; & nbsp; & nbsp; & nbsp; . & nbsp; write = csv.Writer [f, trích dẫn = csv.quote_nonnumeric, & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; & nbsp; write.writerow [chi tiết] & nbsp; & nbsp; write.writerows [hàng] csv
Details = ['Name', 'class', 'Year', 'Subject','Grade']
rows = [ ['Susjan',
'2nd', '2020', 'Physics','A'],
['John', '3rd', '2022', 'Chemistry','B'],
['Sam', '4th',
'2021', 'Math','A']]
with open['quote.csv', 'w'] as f:
write = csv.writer[f,quoting=csv.QUOTE_NONNUMERIC,
delimiter=';', quotechar='*']
write.writerow[Details]
write.writerows[rows]
Ouput:
*Name*;*class*;*Year*;*Subject*;*Grade**Susjan*;*2nd*;*2020*;*Physics*;*A**John*;*3rd*;*2022*;*Chemistry*;*B**Sam*;*4th*;*2021*;*Math*;*A*Name*;*class*;*Year*;*Subject*;*Grade*
*Susjan*;*2nd*;*2020*;*Physics*;*A*
*John*;*3rd*;*2022*;*Chemistry*;*B*
*Sam*;*4th*;*2021*;*Math*;*A*
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the CSV module.
Dòng 2 đến 3: Chúng tôi đã tạo hai danh sách các chi tiết và hàng. Danh sách chi tiết sẽ đại diện cho tên của các cột và danh sách các hàng sẽ đại diện cho mỗi dữ liệu cột.: We created two lists of details and rows. The details list will represent the names of the columns, and the rows lists will represent each column’s data.
Dòng 6 đến 9: Chúng tôi mở một tệp studentdata.csv dưới dạng chế độ ghi [‘w,] để viết tệp. Bây giờ, chúng tôi đã tạo một đối tượng để viết bằng CSV.Writer [F]. Chúng tôi cũng thêm một trích dẫn thuộc tính và quotechar vào phương thức csv.Writer [] cùng với f. Đầu tiên, chúng tôi viết tên của cột của CSV bằng danh sách chi tiết. Sau khi viết điều đó, chúng tôi sử dụng write.writerows [] và chuyển danh sách các hàng dưới dạng tham số để viết từng danh sách dưới dạng một hàng.: We open a file studentData.csv as a write mode [‘w’] to write the file. Now, we created an object to write using the csv.writer[f]. We also add one extra attribute quoting and quotechar into the csv.writer[] method along with the f. First, we write the names of the column of the csv using the details list. After writing that, we use the write.writerows[] and pass the rows list as a parameter to write each of the lists as a row.
Đầu ra cho thấy dữ liệu tệp CSV của chúng tôi hiện được trích dẫn với quotechar tùy chỉnh.
9. Phương thức: Viết tệp CSV bằng csv.dictwriter []
Chúng ta cũng có thể viết tệp CSV bằng phương thức DictWriter []. Vì vậy, trong chương trình này, chúng ta sẽ xem cách chúng ta có thể sử dụng phương thức DictWriter [] để viết tệp CSV.
& nbsp; & nbsp;
Nhập CSV csv
với Open ['DictWriter.csv', 'w', newline = ''] dưới dạng tệp: & nbsp; & nbsp; fieldNames = ['a', 'b'] & nbsp; & nbsp; writer = csv.dictwriter [file, fieldNames = fieldNames]['dictwriter.csv', 'w', newline=''] as file:
fieldnames = ['A', 'B']
writer = csv.DictWriter[file,
fieldnames=fieldnames]
& nbsp; & nbsp; writer.writeHeader [] & nbsp; & nbsp; Writer.Writerow [{'A': 'Magnus Carlsen', 'B': 28770}] & nbsp; & nbsp; writer.writerow [{'a': 'fabiano caruana', 'b': 28222}] & nbsp; & nbsp; writer.writerow [{'a': 'ding liren', 'b': 28001}]writeheader[]
writer.writerow[{'A': 'Magnus Carlsen', 'B': 28770}]
writer.writerow[{'A': 'Fabiano
Caruana', 'B': 28222}]
writer.writerow[{'A': 'Ding Liren', 'B': 28001}]
Output:
A, B Magnus Carlsen, 28770 Fabiano Caruana, 28222 Ding Liren, 28001,B
Magnus Carlsen,28770
Fabiano Caruana,28222
Ding
Liren,28001
Dòng 1: Chúng tôi nhập mô -đun CSV.: We import the module csv.
Dòng 3: Chúng tôi mở tệp Dictwriter.csv trong chế độ ghi.: We open the file dictwriter.csv in the write mode.
Dòng 4 và 5: Trong phương thức DictWriter [] này, chúng ta phải xác định các khóa trong danh sách và vượt qua trong khi tạo đối tượng người viết, như được hiển thị trong dòng số 5. Các tên trường có cùng chuỗi trong đó chúng ta muốn viết CSV tập tin.: In this dictwriter [] method, we must define the keys in the list and pass while creating the writer object, as shown in line number 5. The fieldnames are in the same sequence in which we want to write the csv file.
Dòng 8 đến 10: Chúng tôi chuyển tất cả dữ liệu cho người viết dưới dạng dict [khóa và giá trị].: We pass all the data to the writerow in the form of the dict [key and value].
Sự kết luận:
Trong bài viết này, chúng tôi đã thấy các cách khác nhau để sử dụng các phương thức CSV.Writerow []. Chúng tôi đã thấy làm thế nào chúng tôi có thể viết toàn bộ danh sách cho một CSV. Chúng ta cũng đã thấy làm thế nào chúng ta có thể viết các bộ dữ liệu bên trong danh sách thành CSV. Sau đó, chúng tôi đã thấy một số phương pháp thú vị như Delimiter tùy chỉnh của CSV.