BAI*_*BAI 25 python csv data-munging
我需要从我读过的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)
Run Code Online (Sandbox Code Playgroud)
小智 34
还有嵌入式格式参数: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)
Run Code Online (Sandbox Code Playgroud)
Civ*_*Fan 10
在我的情况下,我只关心在使用时从字段名称(也就是列标题,也就是字典键)中删除空格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
Run Code Online (Sandbox Code Playgroud)
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]
Run Code Online (Sandbox Code Playgroud)