Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

39

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Tôi cần phải sọc các khoảng trắng từ tệp CSV mà tôi đã đọc

import csv

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    # I need to strip the extra white space from each string in the row
    return(aList)

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Nuno André

Phù hiệu vàng 3.9401 Huy hiệu bạc40 Huy hiệu đồng1 gold badge29 silver badges40 bronze badges

hỏi ngày 14 tháng 2 năm 2013 lúc 23:24Feb 14, 2013 at 23:24

Ngoài ra còn có tham số định dạng nhúng: Skipinitialspace (mặc định là sai) http://docs.python.org/2/l Library/csv.html#csv-fmt-pams

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Óscar López

228K35 Huy hiệu vàng305 Huy hiệu bạc378 Huy hiệu đồng35 gold badges305 silver badges378 bronze badges

Đã trả lời ngày 14 tháng 6 năm 2013 lúc 21:34Jun 14, 2013 at 21:34

CarawcarawCaraW

4415 Huy hiệu bạc3 Huy hiệu đồng5 silver badges3 bronze badges

2

Trong trường hợp của tôi, tôi chỉ quan tâm đến việc tước khoảng trắng từ các tên trường (hay còn gọi là tiêu đề cột, AKA từ điển), khi sử dụng

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
5.field names (aka column headers, aka dictionary keys), when using
aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
5.

Tạo một lớp dựa trên

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
5 và ghi đè thuộc tính
aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
7 để loại bỏ khoảng trắng từ mỗi tên trường (AKA tiêu đề cột, phím từ điển hay còn gọi là khóa từ điển).

Thực hiện điều này bằng cách lấy danh sách các tên trường thường xuyên và sau đó lặp lại nó trong khi tạo một danh sách mới với khoảng trắng bị tước từ mỗi tên trường và đặt thuộc tính

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
8 bên dưới cho danh sách mới này.

import csv

class DictReaderStrip(csv.DictReader):
    @property                                    
    def fieldnames(self):
        if self._fieldnames is None:
            # Initialize self._fieldnames
            # Note: DictReader is an old-style class, so can't use super()
            csv.DictReader.fieldnames.fget(self)
            if self._fieldnames is not None:
                self._fieldnames = [name.strip() for name in self._fieldnames]
        return self._fieldnames

Đã trả lời ngày 9 tháng 9 năm 2015 lúc 18:08Sep 9, 2015 at 18:08

CivilfancivfanCivFan

12.4K9 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu Đồng9 gold badges39 silver badges57 bronze badges

1

with open(self.filename, 'r') as f:
    reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
    return [[x.strip() for x in row] for row in reader]

Đã trả lời ngày 14 tháng 2 năm 2013 lúc 23:27Feb 14, 2013 at 23:27

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Mgilsonmgilsonmgilson

289K60 Huy hiệu vàng607 Huy hiệu bạc676 Huy hiệu Đồng60 gold badges607 silver badges676 bronze badges

2

Bạn có thể làm:

aList.append([element.strip() for element in row])

Đã trả lời ngày 14 tháng 2 năm 2013 lúc 23:26Feb 14, 2013 at 23:26

Sapisapisapi

9.7728 Huy hiệu vàng39 Huy hiệu bạc71 Huy hiệu đồng8 gold badges39 silver badges71 bronze badges

Phương pháp tiết kiệm bộ nhớ nhất để định dạng các ô sau khi phân tích cú pháp là thông qua các trình tạo. Cái gì đó như:

with open(self.filename, 'r') as f:
    reader = csv.reader(f, delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        yield (cell.strip() for cell in row)

Nhưng nó có thể đáng để chuyển nó sang một chức năng mà bạn có thể sử dụng để tiếp tục và để tránh các lần lặp lại sắp tới. Ví dụ:

nulls = {'NULL', 'null', 'None', ''}

def clean(reader):
    def clean(row):
        for cell in row:
            cell = cell.strip()
            yield None if cell in nulls else cell

    for row in reader:
        yield clean(row)

Hoặc nó có thể được sử dụng để nhân tố một lớp:

def factory(reader):
    fields = next(reader)

    def clean(row):
        for cell in row:
            cell = cell.strip()
            yield None if cell in nulls else cell

    for row in reader:
        yield dict(zip(fields, clean(row)))

Đã trả lời ngày 4 tháng 8 năm 2018 lúc 17:29Aug 4, 2018 at 17:29

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Nuno Andrénuno AndréNuno André

Phù hiệu vàng 3.9401 Huy hiệu bạc40 Huy hiệu đồng1 gold badge29 silver badges40 bronze badges

hỏi ngày 14 tháng 2 năm 2013 lúc 23:24

import re

class CSVSpaceStripper:
  def __init__(self, filename):
    self.fh = open(filename, "r")
    self.surroundingWhiteSpace = re.compile("\s*;\s*")
    self.leadingOrTrailingWhiteSpace = re.compile("^\s*|\s*$")

  def close(self):
    self.fh.close()
    self.fh = None

  def __iter__(self):
    return self

  def next(self):
    line = self.fh.next()
    line = self.surroundingWhiteSpace.sub(";", line)
    line = self.leadingOrTrailingWhiteSpace.sub("", line)
    return line

Ngoài ra còn có tham số định dạng nhúng: Skipinitialspace (mặc định là sai) http://docs.python.org/2/l Library/csv.html#csv-fmt-pams

o = csv.reader(CSVSpaceStripper(filename), delimiter=";")
o = csv.DictReader(CSVSpaceStripper(filename), delimiter=";")

Óscar López

228K35 Huy hiệu vàng305 Huy hiệu bạc378 Huy hiệu đồngMay 30, 2014 at 14:41

Đã trả lời ngày 14 tháng 6 năm 2013 lúc 21:34daniel kullmann

Carawcaraw6 gold badges51 silver badges65 bronze badges

1

4415 Huy hiệu bạc3 Huy hiệu đồng

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
0

Trong trường hợp của tôi, tôi chỉ quan tâm đến việc tước khoảng trắng từ các tên trường (hay còn gọi là tiêu đề cột, AKA từ điển), khi sử dụng

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
5.

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
1

Tạo một lớp dựa trên

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
5 và ghi đè thuộc tính
aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
7 để loại bỏ khoảng trắng từ mỗi tên trường (AKA tiêu đề cột, phím từ điển hay còn gọi là khóa từ điển).May 2, 2018 at 10:49

Thực hiện điều này bằng cách lấy danh sách các tên trường thường xuyên và sau đó lặp lại nó trong khi tạo một danh sách mới với khoảng trắng bị tước từ mỗi tên trường và đặt thuộc tính

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
8 bên dưới cho danh sách mới này.

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
2

Đã trả lời ngày 9 tháng 9 năm 2015 lúc 18:08Feb 22, 2021 at 10:37

Luke404Luke404Luke404

Civilfancivfan3 gold badges24 silver badges31 bronze badges

12.4K9 Huy hiệu vàng39 Huy hiệu bạc57 Huy hiệu Đồng

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
3

Đã trả lời ngày 14 tháng 2 năm 2013 lúc 23:27Jul 26, 2021 at 15:25

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Mgilsonmgilson

aList=[]
with open(self.filename, 'r') as f:
    reader = csv.reader(f, skipinitialspace=False,delimiter=',', quoting=csv.QUOTE_NONE)
    for row in reader:
        aList.append(row)
    return(aList)
4

289K60 Huy hiệu vàng607 Huy hiệu bạc676 Huy hiệu ĐồngAug 8 at 13:02

Hướng dẫn how to remove extra spaces in csv file using python - cách xóa khoảng trắng thừa trong tệp csv bằng python

Làm cách nào để loại bỏ các không gian bổ sung khỏi tệp CSV?

Các bước để tự động xóa khoảng trống trong tệp CSV:..
Mở tệp CSV trong Microsoft® Excel ..
Chọn cột thẻ ..
Chọn Chỉnh sửa> Thay thế sau đó chọn nút Tùy chọn ..
Chọn tìm kiếm thả xuống và chọn theo cột ..
Trong trường tìm trường nào nhập không gian và để trống thay thế ..
Chọn Thay thế tất cả ..

Làm cách nào để cắt tệp CSV trong Python?

Python3..
Nhập khẩu gấu trúc ..
Đọc tệp CSV ..
Sử dụng chức năng pop () để xóa hoặc xóa các hàng hoặc cột khỏi các tệp CSV ..
In dữ liệu ..

Làm thế nào để bạn tước một không gian trong Python?

Sử dụng phương thức .Strip () để loại bỏ khoảng trắng và các ký tự từ đầu và phần cuối của chuỗi.Sử dụng .Phương thức lStrip () để loại bỏ khoảng trắng và ký tự chỉ từ đầu chuỗi. strip() method to remove whitespace and characters from the beginning and the end of a string. Use the . lstrip() method to remove whitespace and characters only from the beginning of a string.

Có không gian trong các tệp CSV?

Bạn có thể đặt báo giá, dấu gạch ngang và không gian trong tệp CSV.Các trường có chứa một ký tự đặc biệt (dấu phẩy, dòng mới hoặc trích dẫn kép), phải được đặt trong các trích dẫn kép.. Fields that contain a special character (comma, newline, or double quote), must be enclosed in double quotes.