文件读取函数:Python中的函数,可以读取不同格式的文件
Python中,文件读取函数在数据处理中极为重要,可以读取不同格式的文件,包括文本文件、CSV文件、Excel文件、JSON文件、XML文件、HTML文件等。本文将介绍Python中常用的文件读取函数,包括open()函数、csv模块、pandas模块、json模块、xml.etree.ElementTree模块等。
一、open()函数
open()函数是Python中内置的文件读取函数,可以打开文本文件、二进制文件等,支持读、写、追加等操作。open()函数语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数解释:
file:文件名或路径。
mode:打开文件的模式,可选参数,默认值为'r',可选值包括'r','w','a'等,分别表示打开文件进行读取、写入和追加。
buffering:缓冲区的大小,默认值为-1,表示使用系统默认缓冲区大小。
encoding:文件的编码方式,默认值为None,表示使用系统默认编码方式。
errors:编码错误处理方式,默认值为None,表示直接引发异常。
newline:换行符的处理方式,默认值为None,表示使用系统默认换行符。
closefd:文件描述符是否被关闭,默认值为True。
opener:自定义打开文件方式的函数。
open()函数返回值是一个文件对象,可以使用read()函数、readline()函数、readlines()函数、write()函数、writelines()函数等来读取或写入文件内容。
二、csv模块
csv模块是Python内置的用于读取和写入CSV文件的模块,可以方便地处理逗号分隔的数据。csv模块中常用的函数包括:
1. csv.reader()函数:将CSV文件读取为列表或迭代器。其语法为:
csv.reader(csvfile, dialect='excel', **kwds)
参数解释:
csvfile:CSV文件对象或者是包含CSV格式数据的文件对象。
dialect:表示读取CSV文件的方言,可选值为excel、excel-tab、unix等。
kwds:指定其他参数。
2. csv.writer()函数:将列表或迭代器写入为CSV文件。其语法为:
csv.writer(csvfile, dialect='excel', **kwds)
参数解释:
csvfile:CSV文件对象或者是包含CSV格式数据的文件对象。
dialect:表示写入CSV文件的方言,可选值为excel、excel-tab、unix等。
kwds:指定其他参数。
3. csv.DictReader()函数:将CSV文件读取为字典格式。其语法为:
csv.DictReader(csvfile, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds)
参数解释:
csvfile:CSV文件对象或者是包含CSV格式数据的文件对象。
fieldnames:指定字段名,可选参数。
restkey:剩余行的列名,默认为None,表示只保留列表中前面的字段,后面的字段保存为一个列表。
restval:剩余行的默认值,默认为None。
dialect:表示读取CSV文件的方言,可选值为excel、excel-tab、unix等。
args和kwds:其他参数。
4. csv.DictWriter()函数:将字典格式的数据写入为CSV文件。其语法为:
csv.DictWriter(csvfile, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds)
参数解释:
csvfile:CSV文件对象或者是包含CSV格式数据的文件对象。
fieldnames:指定字段名。
restval:剩余字段的默认值,默认为''。
extrasaction:多余的字段如何处理,可选值为raise、ignore,raise表示引发异常,ignore表示忽略。
dialect:表示读取CSV文件的方言,可选值为excel、excel-tab、unix等。
args和kwds:其他参数。
三、pandas模块
pandas模块是Python中数据处理的常用模块,可以读取和处理各种数据格式,包括CSV、Excel、JSON、XML等。pandas模块中常用的函数包括:
1. pandas.read_csv()函数:读取CSV文件。其语法为:
pandas.read_csv(filepath_or_buffer, sep=',', delimiter=None, header='infer', names=None, index_col=None, usecols=None, squeeze=False, prefix=None, mangle_dupe_cols=True, dtype=None, engine=None, converters=None, true_values=None, false_values=None, skipinitialspace=False, skiprows=None, nrows=None, na_values=None, keep_default_na=True, na_filter=True, verbose=False, skip_blank_lines=True, parse_dates=False, infer_datetime_format=False, keep_date_col=False, date_parser=None, dayfirst=False, cache_dates=True, iterator=False, chunksize=None, compression='infer', thousands=None, decimal='.', lineterminator=None, quotechar='"', quoting=0, doublequote=True, escapechar=None, comment=None, encoding=None, dialect=None, tupleize_cols=None, error_bad_lines=True, warn_bad_lines=True, skip_footer=0, skip_footer_char=None, skip_footer_lines=False, dialect_kwargs=None, **kwds)
参数解释:
filepath_or_buffer:文件路径或对象。
sep:指定列之间的分隔符,默认为逗号。
delimiter:同sep,可选参数。
header:指定标题所在行,默认为infer,表示标题位于 行或被省略,若无则指定为None
names: 自定义标题,默认为None
index_col:指定作为行索引的列,默认为None,表示不使用。
usecols:读取指定列,默认为None,表示读取全部列。
squeeze:是否将单列DataFrame转换为序列,默认为False。
prefix:指定列名的前缀,默认为None。
mangle_dupe_cols:是否重命名重复的列名,默认为True。
dtype:指定数据类型,可选字典、元组或者None,若为None,则根据数据情况自动判断。
engine:读取文件的引擎,默认为C,可选值为Python,表示使用Python解释器读取。
converters:可选字典,表示对某些列进行特定的数据类型转换。
true_values:指定与布尔值True对应的字符串,默认为['True', 'TRUE', 'true']。
false_values:指定与布尔值False对应的字符串,默认为['False', 'FALSE', 'false']。
skipinitialspace:是否忽略空格,默认为False。
skiprows:指定需要跳过的行数,默认为None,表示不跳过。
nrows:指定读取的行数,默认为None,表示读取全部。
na_values:指定缺失值,可选字典、元组或者None。
keep_default_na:指定是否保留默认的缺失值,默认为True。
na_filter:是否过滤缺失值,默认为True。
verbose:是否在控制台输出读取信息,默认为False。
skip_blank_lines:是否跳过空白行,默认为True。
parse_dates:是否将某些列转换为日期时间格式,默认为False。
infer_datetime_format:是否尝试推测日期时间格式,默认为False。
keep_date_col:是否保留日期时间列,默认为False。
date_parser:指定日期时间格式。
dayfirst:是否将日视为 天,默认为False。
cache_dates:指定是否缓存日期时间格式。
iterator:是否使用迭代器,默认为False,表示一次性读取所有数据。
chunksize:读取的块大小,默认为None,表示读取全部数据。
compression:指定压缩格式。
thousands:指定千位分隔符。
decimal:指定小数点的分隔符。
lineterminator:行终止符,默认为None,表示使用系统默认的终止符。
quotechar:引号字符,默认为双引号。
quoting:引号的数量,默认为0,表示不使用引号,可选值为1和2,分别表示使用单引号和双引号。
doublequote:是否使用两个双引号表示一个双引号,默认为True。
escapechar:转义字符,默认为None,表示不使用。
comment:注释字符,默认为None,表示不使用。
