nguyên tửxkai
Người Pháp ngớ ngẩn
Bài viết. 30
Chủ đề. 8
Đã tham gia. Tháng 2 năm 2021
Danh tiếng. 0
Feb-04-2022, 11. 06 giờ chiềuXin chào, tôi đang cố gắng thêm một số cột có giá trị như chỉ mục nhưng tôi gặp lỗi ở dòng 16. Hy vọng bất cứ ai có thể giúp đỡ. Thanks
import csv
import glob
header = ['NAME','ADDRESS','PHONE','EMAIL']
# with pipe delimter data
with open("datafile.txt", mode='r') as text_pipe:
reader_pipe = csv.reader(text_pipe, delimiter = '|')
with open("output.csv", 'w', newline = '') as file_comma:
writer_delim = csv.writer(file_comma, delimiter = ',')
writer_delim.writerow(header) # add header
record_index = 1 # index sequence
for row in reader_pipe: # loop to read file
writer_delim.writerow(record_index,row) # print value in each line
record_index = record_index + 1
Error:
Exception has occurred: TypeError writerow() takes exactly one argument (2 given) writer_delim.writerow(record_index,row) # print value in each lineHồi đáp
Tìm thấy
Hồi đáp
bát tràng
Đà giám mục
Bài viết. 1.523
Chủ đề. 3
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 163
05-02-2022, 12. 08 AM (Bài đăng này đã được sửa đổi lần cuối. Feb-05-2022, 12. 08 AM bởi bowlofred. )writerow() nhận chính xác một đối số. toàn bộ hàng bạn muốn viết/nối thêm vào csv của bạn
Bạn đã vượt qua hai đối tượng. Nếu bạn muốn thêm record_index vào CSV của mình, hãy sửa đổi trực tiếp row để đưa giá trị đó vào hàng. Sau đó viết hàng đó ra
Một số điều khác tôi có thể đề nghị
Bạn không cần hai ngữ cảnh riêng biệt để mở hai tệp. Nếu bạn định thoát ngay lập tức nếu một trong hai lần mở không thành công và bạn đã hoàn thành chúng cùng một lúc, thì bạn có thể muốn đặt chúng vào cùng một with và tiết kiệm một số khoảng trống thụt lề
Vì bạn chỉ đang đếm trên một vòng lặp, hãy cân nhắc sử dụng enumerate() cho bộ đếm thay vì quản lý của riêng bạn
import csv
import glob
header = ['NAME','ADDRESS','PHONE','EMAIL']
# with pipe delimter data
with open("datafile.txt", mode='r') as text_pipe, open("output.csv", 'w', newline= '') as file_comma:
reader_pipe = csv.reader(text_pipe, delimiter = '|')
writer_delim = csv.writer(file_comma, delimiter = ',')
writer_delim.writerow(header) # add header
for record_index, row in enumerate(reader_pipe, 1): # loop to read file
row.insert(0, record_index)
writer_delim.writerow(row) # print value in each line
BashBedlam và Atomxkai thích bài đăng này
Hồi đáp
Tìm thấy
Hồi đáp
nguyên tửxkai
Người Pháp ngớ ngẩn
Bài viết. 30
Chủ đề. 8
Đã tham gia. Tháng 2 năm 2021
Danh tiếng. 0
05-02-2022, 12. 31 giờ sáng (Bài đăng này đã được sửa đổi lần cuối. Feb-05-2022, 12. 31 giờ sáng bởi Atomxkai. )(05-02-2022, 12. 08 giờ sáng) bowlofred Đã viết. writerow() nhận chính xác một đối số. toàn bộ hàng bạn muốn viết/nối thêm vào csv của bạn.
Bạn đã vượt qua hai đối tượng. Nếu bạn muốn thêm record_index vào CSV của mình, hãy sửa đổi trực tiếp row để đưa giá trị đó vào hàng. Sau đó viết hàng đó ra
Một số điều khác tôi có thể đề nghị
Bạn không cần hai ngữ cảnh riêng biệt để mở hai tệp. Nếu bạn định thoát ngay lập tức nếu một trong hai lần mở không thành công và bạn đã hoàn thành chúng cùng một lúc, thì bạn có thể muốn đặt chúng vào cùng một with và tiết kiệm một số khoảng trống thụt lề
Vì bạn chỉ đang đếm trên một vòng lặp, hãy cân nhắc sử dụng enumerate() cho bộ đếm thay vì quản lý của riêng bạn
import csv import glob header = ['NAME','ADDRESS','PHONE','EMAIL'] # with pipe delimter data with open("datafile.txt", mode='r') as text_pipe, open("output.csv", 'w', newline= '') as file_comma: reader_pipe = csv.reader(text_pipe, delimiter = '|') writer_delim = csv.writer(file_comma, delimiter = ',') writer_delim.writerow(header) # add header for record_index, row in enumerate(reader_pipe, 1): # loop to read file row.insert(0, record_index) writer_delim.writerow(row) # print value in each line
Nó hoạt động hoàn hảo bowlofred. Cảm ơn bạn
những gì tôi học được
1. viết cùng 'với'
2. chức năng 'chèn'
3. Tôi đã thử 'liệt kê' trước đây nhưng vẫn chưa thấm vào đâu cho đến bây giờ
câu hỏi thêm
1. Vì vậy, nếu tôi muốn chèn các giá trị khác và thêm các cột hoặc trường mới, tôi chỉ có thể sử dụng chức năng chèn và sử dụng vị trí?
2. Bạn có gợi ý làm thế nào để thực sự hiểu các loại chức năng này hay chỉ cần thực hành?
Hồi đáp
Tìm thấy
Hồi đáp
bát tràng
Đà giám mục
Bài viết. 1.523
Chủ đề. 3
Đã tham gia. Tháng 3 năm 2020
Danh tiếng. 163
Feb-05-2022, 01. 10 giờ sáng(05-02-2022, 12. 31 giờ sáng) atomxkai Đã viết. 1. Vì vậy, nếu tôi muốn chèn các giá trị khác và thêm các cột hoặc trường mới, tôi chỉ có thể sử dụng chức năng chèn và sử dụng vị trí?
Đúng. Bạn cần cung cấp cho csvwriter một đối tượng với số lượng trường chính xác. Vì danh sách của bạn là một danh sách nên tôi đã sử dụng phương pháp
Error:
Exception has occurred: TypeError writerow() takes exactly one argument (2 given) writer_delim.writerow(record_index,row) # print value in each line2 để sửa đổi nó, nhưng bạn có thể sử dụng bất kỳ thao tác nào khác (tạo một danh sách mới với khả năng hiểu, lát,. phương thức append(), v.v. )Điều này khá đơn giản, nhưng bạn phải theo dõi và đảm bảo mọi thứ luôn được thực hiện theo đúng trình tự
Trích dẫn. 2. Bạn có gợi ý làm thế nào để thực sự hiểu các loại chức năng này hay chỉ cần thực hành?
Khá nhiều chỉ cần thực hành. Không có gì sai khi cố gắng và có một cách kém hiệu quả hơn hoặc ít thành ngữ hơn lúc đầu. Tôi thấy hướng dẫn tham khảo choáng ngợp khi lần đầu tiên học một ngôn ngữ. Tôi mong đợi một số điều cơ bản nhất định sẽ ở đó. Chỉ sau khi sử dụng một thời gian, tôi mới cảm thấy thoải mái và tôi có thể hiểu làm thế nào một số chi tiết lại ăn khớp với nhau
Atomxkai thích bài viết này
Hồi đáp
Tìm thấy
Hồi đáp
nguyên tửxkai
Người Pháp ngớ ngẩn
Bài viết. 30
Chủ đề. 8
Đã tham gia. Tháng 2 năm 2021
Danh tiếng. 0
Feb-11-2022, 12. 38 giờ sáng(05-02-2022, 01. 10 giờ sáng) bowlofred Đã viết.(05-02-2022, 12. 31 giờ sáng) atomxkai Đã viết. 1. Vì vậy, nếu tôi muốn chèn các giá trị khác và thêm các cột hoặc trường mới, tôi chỉ có thể sử dụng chức năng chèn và sử dụng vị trí?
Đúng. Bạn cần cung cấp cho csvwriter một đối tượng với số lượng trường chính xác. Vì danh sách của bạn là một danh sách nên tôi đã sử dụng phương phápError:
Exception has occurred: TypeError writerow() takes exactly one argument (2 given) writer_delim.writerow(record_index,row) # print value in each line2 để sửa đổi nó, nhưng bạn có thể sử dụng bất kỳ thao tác nào khác (tạo một danh sách mới với khả năng hiểu, lát,. phương thức append(), v.v. )
Điều này khá đơn giản, nhưng bạn phải theo dõi và đảm bảo mọi thứ luôn được thực hiện theo đúng trình tựTrích dẫn. 2. Bạn có gợi ý làm thế nào để thực sự hiểu các loại chức năng này hay chỉ cần thực hành?
Khá nhiều chỉ cần thực hành. Không có gì sai khi cố gắng và có một cách kém hiệu quả hơn hoặc ít thành ngữ hơn lúc đầu. Tôi thấy hướng dẫn tham khảo choáng ngợp khi lần đầu tiên học một ngôn ngữ. Tôi mong đợi một số điều cơ bản nhất định sẽ ở đó. Chỉ sau khi sử dụng một thời gian, tôi mới cảm thấy thoải mái và tôi có thể hiểu làm thế nào một số chi tiết lại ăn khớp với nhau
Thực sự tuyệt vời, cảm ơn một lần nữa
Hồi đáp
Tìm thấy
Hồi đáp