Hướng dẫn remove last line from csv file python - xóa dòng cuối cùng khỏi tệp csv python

Tôi không chắc bạn đang làm gì với chế độ tệp 'A+R+B' và đọc và ghi vào cùng một tệp, vì vậy sẽ không cung cấp đoạn mã hoàn chỉnh, nhưng đây là một phương thức đơn giản để bỏ qua bất kỳ dòng nào chứa một byte nul trong chúng trong một tệp bạn đang đọc, cho dù đó là lần cuối cùng, đầu tiên hay một ở giữa đang được đọc.

Bí quyết là nhận ra rằng các tài liệu nói rằng đối số CSVFile cho

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
7 "có thể là bất kỳ đối tượng nào hỗ trợ giao thức iterator và trả về một chuỗi mỗi lần phương thức
dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
8 của nó được gọi." Điều này có nghĩa là bạn có thể thay thế đối số tệp trong cuộc gọi bằng hàm lặp bộ lọc đơn giản được xác định theo cách này:

def filter_nul_byte_lines[a_file]:
    for line in a_file:
        if '\x00' not in line:
            yield line

và sử dụng nó theo cách tương tự như thế này:

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row

Điều này sẽ khiến bất kỳ dòng nào có byte nul trong chúng bị bỏ qua trong khi đọc tệp. Ngoài ra, kỹ thuật này hoạt động trực tiếp vì mỗi dòng được đọc, vì vậy nó không yêu cầu đọc toàn bộ tệp vào bộ nhớ cùng một lúc hoặc tiền xử lý trước.

  • Người bắt đầu
  • 5 trả lời

Hello!

Chúng tôi có một phần mềm trong đó chúng tôi xuất dữ liệu hàng ngày mỗi ngày một lần vào thư mục Google Drive & NBSP; và nhập nó vào CSV bằng cách sử dụng Zapier Formatter. & nbsp; sau đó chúng tôi thực hiện một số tính toán và gửi dữ liệu đó đến asana.

Chúng tôi đã có thể tạo ra một số zaps tuyệt vời hoạt động trong quá trình thử nghiệm, nhưng khi chúng tôi bật ZAP, chúng tôi sẽ chạy vào một vấn đề. & nbsp; Trong quá trình thử nghiệm, ZAP chỉ kiểm tra 50 hàng của CSV. & nbsp; Các báo cáo của chúng tôi xảy ra là khoảng 53 hàng hoặc lâu hơn. Khi ZAP được bật, nó xử lý toàn bộ.

Vấn đề chính là dòng cuối cùng của tệp CSV luôn có tổng số dữ liệu trên đó. & nbsp; Tôi có thể giải quyết tất cả các vấn đề của mình nếu tôi có thể loại bỏ dòng cuối cùng của CSV trong tổng số hoặc thậm chí lọc/xóa mục cuối cùng trong mỗi cột tôi đang làm việc.

Dưới đây là ảnh chụp màn hình của tệp CSV. Hàng nổi bật là một trong những tôi đang cố gắng loại bỏ.

Thanks!

Bài đăng này đã được đóng cho bình luận. Vui lòng tạo một bài đăng mới nếu bạn cần trợ giúp hoặc có một câu hỏi về chủ đề này.

Tôi chỉ đọc trong toàn bộ tệp với các bản tin [], bật ra hàng cuối cùng và sau đó viết nó bằng mô -đun CSV

import csv
f = open["summary.csv", "r+w"]
lines = f.readlines[]
lines = lines[: -1]

cWriter = csv.writer[f, delimiter = ',']
for line in lines:
   cWriter.writerow[line]

Điều này sẽ hoạt động

import csv
f = open['Pnl.csv', "r+"]
lines = f.readlines[]
lines.pop[]
f = open['Pnl.csv', "w+"]
f.writelines[lines]

Bí quyết là nhận ra rằng các tài liệu nói rằng đối số CSVFile cho

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
7 "có thể là bất kỳ đối tượng nào hỗ trợ giao thức iterator và trả về một chuỗi mỗi lần phương thức
dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
8 của nó được gọi." Điều này có nghĩa là bạn có thể thay thế đối số tệp trong cuộc gọi bằng hàm lặp bộ lọc đơn giản được xác định theo cách này:

def filter_nul_byte_lines[a_file]:
   for line in a_file:
   if '\x00' not in line:
   yield line

và sử dụng nó theo cách tương tự như thế này:

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
   print row


Gợi ý: 2

Để xóa hàng cuối cùng khỏi DataFrame, chỉ cần chọn các hàng từ hàng số 0 đến cuối-1 và chọn tất cả các cột. Để biểu thị số chỉ mục của hàng cuối cùng, chúng tôi đã sử dụng -1 [lập chỉ mục âm]. Khi lập chỉ mục bắt đầu từ 0, vì vậy để chọn tất cả các hàng sau khi sử dụng cuối cùng-> [: -1], tức là từ hàng ngày 0 đến thứ 2 hàng cuối cùng. Để chọn tất cả các cột, sử dụng các giá trị mặc định, tức là [:] tức là, ROW_END: ​​Chỉ mục hàng/vị trí từ nơi nó sẽ kết thúc lựa chọn, tức là chọn cho đến ROW_END-1. Mặc định là cho đến hàng cuối cùng của DataFrame., COL_END: ​​Chỉ mục/Vị trí cột từ nơi nó sẽ kết thúc lựa chọn, tức là chọn Till-1. Mặc định là cho đến cột cuối cùng của DataFrame., Chúng tôi đã tìm nạp tất cả các tên của Chỉ mục DataFrame dưới dạng chuỗi và chuyển tên hàng/chỉ mục cuối cùng dưới dạng đối số chỉ mục trong hàm thả [], do đó, nó đã xóa hàng cuối cùng của DataFrame.

Trong Pandas, DataFrame cung cấp một ILOC thuộc tính, để chọn một phần của DataFrame bằng cách sử dụng lập chỉ mục dựa trên vị trí. Phần được chọn này có thể là một vài cột hoặc hàng. Chúng ta có thể sử dụng thuộc tính này để chọn tất cả các hàng ngoại trừ hàng cuối cùng và sau đó gán lại các hàng đã chọn cho biến ban đầu. Nó sẽ cho một hiệu ứng mà chúng tôi đã xóa hàng cuối cùng khỏi DataFrame. Ví dụ,iloc, to select a portion of the dataframe using position based indexing. This selected portion can be few columns or rows . We can use this attribute to select all the rows except the last one and then assign back the selected rows to the original variable. It will give an effect that we have deleted the last row from the dataframe. For example,

# Drop last row
# by selecting all rows except last row
df = df.iloc[: -1,: ]

Cú pháp của dataFrame.iloc [] giống như,

df.iloc[row_start: row_end, col_start, col_end]

Để xóa hàng cuối cùng khỏi DataFrame, chỉ cần chọn các hàng từ hàng số 0 đến cuối-1 và chọn tất cả các cột. Để biểu thị số chỉ mục của hàng cuối cùng, chúng tôi đã sử dụng -1 [lập chỉ mục âm]. Khi lập chỉ mục bắt đầu từ 0, vì vậy để chọn tất cả các hàng sau khi sử dụng cuối cùng-> [: -1], tức là từ hàng ngày 0 đến thứ 2 hàng cuối cùng. Để chọn tất cả các cột, sử dụng các giá trị mặc định, tức là [:] tức là.


Gợi ý: 3

1 tuần trước ngày 06 tháng 3 năm 2008 & nbsp; · Tùy chọn. Tôi sẽ sử dụng tệp văn bản đọc. Bạn có thể nhấp chuột phải vào nó và bảo nó đọc các dòng. Sau đó xóa khỏi mảng. Để chỉ mục và độ dài không mong muốn và nó sẽ xóa mục cuối cùng [tôi nhận thấy mã của bạn đang xóa dòng thứ hai]. Sau đó mở tệp một lần nữa để thay thế hoặc tạo và ghi dữ liệu của bạn. , Tôi chỉ đọc trong toàn bộ tệp với các readlines [], bật ra hàng cuối cùng và sau đó viết nó bằng mô-đun CSV, [0 chỉ mục sẽ bị xóa như trong lập chỉ mục Python bắt đầu từ 0]: để xóa hàng cuối cùng bằng cách sử dụng cắt lát. Vì cột chỉ mục theo mặc định là số, do đó nhãn chỉ mục cũng sẽ là số nguyên. , 1 Nhập thư viện 2 Tải bộ dữ liệu trong Python 3 để loại bỏ hàng đầu tiên bằng cách cắt lát. Vì cột chỉ mục theo mặc định là số, do đó nhãn chỉ mục cũng sẽ là số nguyên.

dcsv = open['PnL.csv', 'a+r+b'] cWriter = csv.writer[dcsv, delimiter = ' '] cReader = csv.reader[dcsv] for row in cReader: cWriter.writerow[row[: -1]]

import csv f = open["summary.csv", "r+w"] lines = f.readlines[] lines = lines[: -1] cWriter = csv.writer[f, delimiter = ','] for line in lines: cWriter.writerow[line]

dcsv = open['PnL.csv', 'a+r+b'] cWriter = csv.writer[dcsv, delimiter = ' '] cReader = csv.reader[dcsv] for row in cReader: cWriter.writerow[row[: -1]]

import csv f = open["summary.csv", "r+w"] lines = f.readlines[] lines = lines[: -1] cWriter = csv.writer[f, delimiter = ','] for line in lines: cWriter.writerow[line]

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
2

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
3


Gợi ý: 4

Bằng cách sử dụng dataFrame.iloc [], bạn có thể thả các hàng từ DataFrame và sử dụng -1 để thả hàng cuối cùng. Ví dụ: sử dụng df.iloc [:-1 ,:] để chọn tất cả các hàng ngoại trừ hàng cuối cùng và sau đó gán lại cho biến ban đầu mà lý tưởng là bỏ hàng cuối cùng từ DataFrame., Trong bài viết này, bạn đã học được cách thả Dữ liệu hàng cuối cùng của gấu trúc DataFrame bằng cách sử dụng dataFrame.iloc [], dataFrame.drop [] và dataFrame.head [] hàm với các ví dụ. và phương thức đầu []. Trong bài viết này, tôi sẽ giải thích cách xóa/thả hàng dữ liệu cuối cùng khỏi Pandas DataFrame với các ví dụ., Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách thả/xóa hàng cuối cùng khỏi Pandas DataFrame.

Nếu bạn đang vội, dưới đây là một số ví dụ nhanh về cách thả/xóa hàng cuối cùng khỏi Pandas DataFrame.

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
4

2._

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
5

Năng suất dưới đầu ra.

dcsv = open['Pnl.csv', 'rb+']
cReader = csv.reader[filter_nul_byte_lines[dcsv]]
for row in cReader:
    print row
6


Làm cách nào để xóa dòng cuối cùng của tệp CSV trong Python?

Loại bỏ dòng cuối cùng khỏi một tệp trong câu trả lời mã Python..
fd=open["file.txt","r"].
d = fd. đọc[].
FD. gần[].
m = d. chia ["\ n"].
s = "\ n". tham gia [m [:-1]].
fd=open["file.txt","w+"].
Đối với tôi trong phạm vi [Len [s]]:.
FD. Viết [s [i]].

Làm thế nào để bạn xóa dòng cuối cùng của một tệp trong Python?

Để xóa tất cả các dòng trong một tệp và xóa tệp, chúng ta có thể sử dụng phương thức cắt ngắn [] trên đối tượng tệp.Phương thức cắt [] loại bỏ tất cả các dòng khỏi một tệp và đặt con trỏ tệp đến đầu tệp.use the truncate[] method on the file object. The truncate[] method removes all lines from a file and sets the file pointer to the beginning of the file.

Làm cách nào để đọc dòng cuối cùng của tệp CSV trong Python?

Đọc dòng cuối cùng của tệp với hàm readlines [] trong python.Tập tin.hàm readlines [] đọc tất cả các dòng của một tệp và trả về chúng dưới dạng một danh sách.Sau đó, chúng ta có thể nhận dòng cuối cùng của tệp bằng cách tham chiếu chỉ mục cuối cùng của danh sách bằng cách sử dụng -1 làm chỉ mục.readlines[] Function in Python. The file. readlines[] function reads all the lines of a file and returns them in the form of a list. We can then get the last line of the file by referencing the last index of the list using -1 as an index.

Làm cách nào để xóa một hàng trong CSV?

Phương pháp 3: Loại bỏ bằng điều kiện..
Nhập mô -đun ..
Tải dữ liệu..
Chọn dữ liệu bắt buộc ..
Tìm hàng chỉ định điều kiện được chỉ định ..
Sử dụng phương thức thả [] và chuyển chỉ số của hàng được tìm nạp làm tham số trong phương thức thả ..

Bài Viết Liên Quan

Chủ Đề