forfile in files: kwargs={"encoding": 'utf-8'} with open(file, 'r', **kwargs) as csvfile: csvlines = csv.DictReader(csvfile, skipinitialspace=True) lines = lines + list(csvlines)
`skipinitialspace` 是一个参数,在 `csv.DictReader` 中使用,用来处理CSV文件中的空格问题。当你的CSV文件中,列之间的分隔符之后存在一个或多个空格,使用 `skipinitialspace` 参数可以让你忽略这些额外的空格。 默认情况下,`skipinitialspace` 是 `False`。这意味着如果存在额外的空格,它们会被保留在返回的字典中。但是,如果你设置 `skipinitialspace` 为 `True`,那么这些额外的空格会被忽略。 ### 例子: 假设你有以下CSV内容:
Name, Age, Job Alice, 28, Engineer Bob, 30, Doctor
这里 `Age` 列后面有一个空格。 如果你使用默认的 `skipinitialspace=False`:
import csv with open('data.csv', 'r') as file: reader = csv.DictReader(file) for row in reader: print(row)
输出会是:
{'Name': 'Alice', 'Age': ' 28', 'Job': 'Engineer'} {'Name': 'Bob', 'Age': ' 30', 'Job': 'Doctor'}
可以看到 `Age` 列的值前有一个空格。 但是,如果你设置 `skipinitialspace=True`:
import csv with open('data.csv', 'r') as file: reader = csv.DictReader(file, skipinitialspace=True) for row in reader: print(row)
输出会是:
{'Name': 'Alice', 'Age': '28', 'Job': 'Engineer'} {'Name': 'Bob', 'Age': '30', 'Job': 'Doctor'}
可以看到 `Age` 列的值前的空格被忽略了。