欢迎访问宙启技术站
智能推送

文件读取函数:Python中的函数,可以读取不同格式的文件

发布时间:2023-05-28 04:41:45

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,表示不使用。