我需要从我读取的 CSV 文件中剥离空白
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)
还有嵌入的格式化参数:skipinitialspace(默认为 false)http://docs.python.org/2/library/csv.html#csv-fmt-params
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)
就我而言,当使用csv.DictReader
时,我只关心从字段名称(又名列标题,又名字典键)中剥离空白。
基于csv.DictReader
创建一个类,并重写fieldnames
属性以从每个字段名称(又名列标题,又名字典键)中去除空格。
要做到这一点,请获取常规的字段名称列表,然后在创建一个新列表时对其进行迭代,并从每个字段名称中删除空白,然后将底层_fieldnames
属性设置为该新列表。
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
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]
您可以执行以下操作:
aList.append([element.strip() for element in row])
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(43条)