1.Python读写TXT文件
1.1 写txt文件:
使用open('output.txt', 'w')
以写的方式打开文件(若文件不存在则创建该文件),使用file.write()
写入文件,其中参数必须为str
字符串。
with open('output.txt', 'w') as file:
data = '12\n23 34\n45 56 67'
file.write(data)
1.2 读txt文件:
使用open('input.txt', 'r')
以读的方式打开.txt文件。使用 file.readlines()
逐行读取文件,每一行为一个字符串,将读取结果放在一个list中返回。使用with
语句,可以在该语块结束后自动关闭文件,即相当于open()
与close()
语句。
with open('input.txt', 'r') as file:
data = file.readlines()
print(data)
print(type(data))
'''输出结果'''
['12\n', '23 34\n', '45 56 67']
<class 'list'>
使用 file.read()
一次读取完整的文件,结果为一个str
字符串。
with open('input.txt', 'r') as file:
data = file.read()
print(data)
print(type(data))
'''输出结果'''
12
23 34
45 56 67
<class 'str'>
2.Python读写CSV文件
.csv格式的文件经常用于保存机器学习相关的数据集,比如MNIST等数据集。读写该格式的文件可以借用Pandas库。
2.1 写csv文件:
向.csv文件中写入数据时,首先需要构造一个DataFrame
类型的数据,如下代码所示,通过传入一个dict
类型的数据。由于传入的是一个dict
类型,你所得到的数据的列的顺序可能不否和你的预期,此时可以通过save[['id', 'name', 'age']]
设置顺序。当得到一个DataFrame
类型数据上,则可以使用to_csv()
将其输出,其中参数index=False
指的是不需要行号。
import pandas
id = [1,2,3]
name = ['Bob', 'Tom', 'Ada']
age = ['11', '12', '13']
save = pandas.DataFrame({'id': id, 'name': name, 'age' : age})
save = save[['id', 'name', 'age']]
save.to_csv('output.csv',index = False)
打开文件’output.csv’可以看到如下样式的表格。
2.2 读csv文件:
使用read_csv('input.csv')
读取.csv文件,其中第一个参数为.csv文件的路径,读取出来的数据以DataFrame格式保存。
import pandas
data = pandas.read_csv('input.csv')
print(data)
print(type(data))
'''输出结果'''
id name age
0 1 Bob 11
1 2 Tom 12
2 3 Ada 13
<class 'pandas.core.frame.DataFrame'>
可以通过DataFrame中的values属性值得到不带标题数据,该数据是numpy.ndarray
类型数据,当然可以再通过tolist()
方法返回list
类型数据。
values = data.values
print(values)
print(type(values))
vlist = values.tolist()
print(type(vlist))
'''输出结果'''
[[1 'Bob' 11]
[2 'Tom' 12]
[3 'Ada' 13]]
<class 'numpy.ndarray'>
<class 'list'>
3.Python读写XLS文件(Excel文件)
3.1 写xls文件:
Pandas将xlrd和xlwt进行了封装,使得读写xls文件与读写csv文件类似。如下代码,是对.xls文件写入,使用pandas.ExcelWriter()
打开一个要写入的.xls文件,然后将DataFrame
格式的数据保存在打开的.xls文件中,其中sheet_name
表示写入的sheet的名字。类似的with语句保证了在操作完文件后关闭该文件。
import pandas
id = [1,2,3]
name = ['Bob', 'Tom', 'Ada']
age = ['11', '12', '13']
save = pandas.DataFrame({'id': id, 'name': name, 'age' : age})
save = save[['id', 'name', 'age']]
with pandas.ExcelWriter('output.xls') as writer:
save.to_excel(writer, index = False, sheet_name='Sheet1')
3.2 读xls文件
使用pandas读取.xls,也很方便,通过pandas.read_excel()
实现对xls文件读取,其中sheet_name
指定要读取的sheet。
import pandas
data = pandas.read_excel('input.xls', sheet_name='Sheet1')
print(data)
print(type(data))
id name age
0 1 Bob 11
1 2 Tom 12
2 3 Ada 13
<class 'pandas.core.frame.DataFrame'>
若想一次读取xls文件中所有sheet时,可以通过将sheet_name
设置为None
来实现。
import pandas
data = pandas.read_excel('input.xls', sheet_name=None)
print(type(data))
<class 'collections.OrderedDict'>
此时可以通过类似遍历字典的方式遍历所有的sheet
for d in data :
print(data[d])
id name age
0 1 Bob 11
1 2 Tom 12
2 3 Ada 13
1.参考文档:
[1]. http://pandas.pydata.org/pandas-docs/version/0.24/pandas.pdf