python读取txt为dataframe_Python 学习 第十三篇:数据的读写-文件、DataFrame、json和pymssql...

Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件的读写操作。当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的数据,这可以使用pandas模块中的函数来读写;也可以保存为json结构的数据,这可以使用json模块中的函数来实现;对于大型的数据交互,通常使用数据库。

一,Python的open函数

open()函数用于打开文件,创建文件对象:

open(name, mode, encoding=None)

参数注释:

name是文件名,包括路径

encoding 是编码方式,常用的编码方式是utf-8

mode是打开文件的模式,最常用的模式是:r:只读模式,表示打开文件是为了从文件的开头读取文件中的数据;

w:只写模式,表示打开文件是为了向文件写入数据。如果该文件已存在,那么打开该文件,删除原有的内容,从文件开头开始写入;如果该文件不存在,那么创建新的文件。

open()函数创建一个file 对象,文件对象的主要方法:file.read([size]):size 未指定则返回整个文件,如果文件大小 >2 倍内存则有问题,f.read()读到文件尾时返回""(空字串)。

file.readline():只读取一行。

file.readlines([size]) :返回包含size行的列表, size 未指定则返回全部行。

for line in f: print( line ):通过迭代器访问。

f.write("hello\n"):如果要写入字符串以外的数据,先将他转换为字符串。

f.close() 关闭文件

1,读取文件

调用open()函数打开一个文件,设置mode='r',表示打开文件是为了读取文件中的数据,调用文件对象的函数或迭代器来逐行读取数据:

file = open('test.txt','r',encoding='utf-8')

lines= [line.strip() for line infile]

file.close()

注意:打开文件之后,完成文件的读写之后,必须调用文件对象的close()方法,最终关闭文件。

2,写入文件

调用open()函数打开一个文件,如果设置mode='w',那么表示打开文件是为了向文件中写入数据,调用文档对象的write('content')函数向文档中写入内容。

file = open('test.txt','w',encoding='utf-8')

file.write('write content to file')

file.close()

注意:打开文件之后,完成文件的读写之后,必须调用文件对象的close()方法,最终关闭文件。

3,文件的关闭

调用open()函数打开一个文件,是把文件读取到内存中的,如果不及时关闭文件,文件对象就会一直占用系统资源,除了调用文件对象的close()方法关闭文件之外,还可以使用 with open(),由系统自动关闭文件:

with open('test.txt','r',encoding='utf-8') as file:

lines= [line.strip() for line in file]

二,pandas模块

pandas模块提供了一些用于把表格型数据读取为DataFrame对象的函数。

1,格式化数据的读取

read_csv:从文件、URL、文件型对象中加载带分隔符的数据,默认的分隔符是逗号。

read_table:从文件、URL、文件型对象中加载带分隔符的数据,默认的分隔符是制表符(\t)。

参数注释:path:要读取的文件的位置

sep:用于对行中各字段进行拆分的字符序列或正则表达式

header:用作列名的行号,默认值是0,如果没有header行,设置为None

index_col:用于行索引的列编号

names:用于自定义列名列表,结合header=None

na_values:一组用于替换NA的值

iterator:返回一个TextParser以便逐块读取文件

chunksize:文件的大小,用于迭代

nrows:需要读取的行数,从文件开始处计算

2,输出数据

利用DataFrame的to_csv方法,可以把数据写到一个以逗号分隔的文件中

DataFrame.to_csv(path_or_buf=None, sep=',', na_rep='', float_format=None, columns=None,

header=True, index=True, index_label=None, mode='w', encoding=None, compression=None,

quoting=None, quotechar='"', line_terminator='\n', chunksize=None, tupleize_cols=None,

date_format=None, doublequote=True, escapechar=None, decimal='.')

常用参数注释:path_or_bu:输出文件的路径,或者设置sys.stdout

sep:行中个字段的分隔符,默认是逗号

na_rep:替换缺失数据的字符

columns:列名列表

header:是否输出header,默认值是True

index:是否输出索引,默认是True

line_terminator:列分隔符

三,json

Python中的json对象实际是一个字典结构,用于存储和交换信息,导入json模块:

import json

1,把字符串转换为json

json的load()方法用于把josn格式的字符串转换为json对象,这实际上是一个字典结构:

json_string= '{ "name":"John", "age":30, "city":"New York"}'

#parse string to json

json_obj = json.loads(json_string)

2,把字典转换为json字符串

json的dumps()函数用于把字典结构转换为json格式的字符串。

x ={"name": "John","age": 30,"city": "New York"}#convert dict into JSON string:

json_string = json.dumps(x)

四,关系型数据库

使用pymssql连接SQL Server数据库,首先创建连接和游标:

importpymssql

conn= pymssql.connect(host='host',user='user',password='pwd',database='db_name')

cursor= conn.cursor()

当执行select语句获得数据时,返回的数据集有两种格式:元组和字典,这需要在创建游标时设置,as_dict的默认值是False。

cursor = conn.cursor(as_dict=True)

1,执行数据更新和删除

通过游标的execute()函数来执行TSQL语句,调用 commit() 来提交事务

cursor.execute("""sql statement""")

conn.commit()

2,执行数据的多行插入

使用游标的executemany()函数来插入多行数据

cursor.executemany("INSERT INTO persons VALUES (%d, %s, %s)",

[(1, 'John Smith', 'John Doe'),

(2, 'Jane Doe', 'Joe Dog'),

(3, 'Mike T.', 'Sarah H.')])

conn.commit()

3,遍历数据

当从SQL Server数据库中获取数据时,使用游标的fetchone()函数,以迭代方式返回结果集的一行数据。

cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')#遍历数据(存放到元组中) 方式1

row =cursor.fetchone()whilerow:print("ID=%d, Name=%s" % (row[0], row[1]))

row=cursor.fetchone()#遍历数据(存放到元组中) 方式2

for row incursor:print('row = %r' %(row,))#遍历数据(存放到字典中)#cursor = conn.cursor(as_dict=True)#cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')#for row in cursor:#print("ID=%d, Name=%s" % (row['id'], row['name']))

4,关闭连接

当查询完成之后,一定要关闭连接:

conn.close()

使用with来自动关闭连接:

importpymssql

server= "187.32.43.13"user= "root"password= "1234"with pymssql.connect(server, user, password,"db_name") as conn:

with conn.cursor(as_dict=True) as cursor: #数据存放到字典中

cursor.execute('SELECT * FROM persons WHERE salesrep=%s', 'John Doe')for row incursor:print("ID=%d, Name=%s" % (row['id'], row['name']))

参考文档:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python有多种方法可以读取数据文件。常见的方法包括读取CSV文件读取文本文件读取JSON文件。 1. 读取CSV文件: 使用pandas库的read_csv()函数可以方便地读取CSV文件。示例代码如下: ``` import pandas as pd data = pd.read_csv('file.csv') ``` 这将读取名为'file.csv'的CSV文件,并将数据存储在一个pandas的DataFrame对象。 2. 读取文本文件: 使用Python的内置方法,可以使用`with open()`语句读取文本文件。示例代码如下: ``` with open('file.txt', 'r') as f: data = f.read() ``` 这将读取名为'file.txt'的文本文件,并将其内容存储在一个字符串变量。 3. 读取JSON文件: 使用pandas库的read_json()函数可以读取JSON文件。示例代码如下: ``` import pandas as pd data = pd.read_json('file.json') ``` 这将读取名为'file.json'的JSON文件,并将数据存储在一个pandas的DataFrame对象。 以上是Python常用的几种读取数据文件的方法。根据你的具体需求和数据文件的格式,选择适合的方法进行数据读取。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [python读取数据方法](https://blog.csdn.net/xj4math/article/details/120410256)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [python 读写数据文件的6种常用方式](https://blog.csdn.net/yingxuanzhang/article/details/124878466)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值