Python-列表、字典写⼊保存读取(txt、csv、xlsxlsx、npy)
Python-列表、字典存取txt、csv、xls/xlsx、npy
前⾔
本⽂主要记录Python-实现⽂件存取的相关笔记,涉及到列表、字典类型的数据如何保存到npy、txt、csv、xsl、xslx格式的⽂件,所有操作都有源码附在下⽅,且有⼤量的源码配套⽣成结果图⽰,可以适应⼤多数情况下存取⽂件需求。
1. 列表
列表将以⼀维和⼆维列表为例进⾏举例,⼆维可以通多维,融会贯通。
1.1 txt⽂件
1.1.1 ⼀维列表
1.1.1.1 保存txt⽂件
node =[1,2,3]
file =open('','a')
mid =str(node).replace('[','').replace(']','')
# 删除单引号并⽤字符空格代替逗号
mid = place("'",'').replace(',','')+'\n'
file.write(mid)
file.close()
⽣成⽂件内容效果如下:
1.1.1.2 读取txt⽂件
使⽤numpy读取:
import numpy as np
node_pair1 = np.loadtxt('./', dtype=bytes).astype(int)
python怎么读取dat文件
node_pair =list(node_pair1)
print(node_pair)
不使⽤numpy读取:
with open('./','r', encoding='utf-8') as f:
data = f.readlines()
for line in data:
# 将字符串以空格和'\n'分割,然后转换为int类型的数组赋值给elem        elem =list(map(int, line.split()))
node_pair.append(elem)
f.close()
print(node_pair)
输出结果如下:
1.1.2 ⼆维列表
1.1.
2.1 保存txt⽂件
node_pair =[[1,2],[2,3]]
file =open('','a')
for i in range(len(node_pair)):
# 去除[]
mid =str(node_pair[i]).replace('[','').replace(']','')
# 删除单引号并⽤字符空格代替逗号
mid = place("'",'').replace(',','')+'\n'
file.write(mid)
file.close()
⽣成⽂件内容效果如下:
1.1.
2.2 读取txt⽂件
使⽤numpy读取:
import numpy as np
node_pair1 = np.loadtxt('./', dtype=bytes).astype(int) node_pair =[]
for item in node_pair1:
node_pair.append(list(item))
print(node_pair)
不使⽤numpy读取:
node_pair =[]
with open('./','r', encoding='utf-8') as f:
data = f.readlines()
for line in data:
# 将字符串以空格和'\n'分割,然后转换为int类型的数组赋值给elem        elem =list(map(int, line.split()))
node_pair.append(elem)
f.close()
print(node_pair)
输出结果如下:
1.2 csv⽂件(不借助pandas)
1.2.1 ⼀维列表保存
import csv
node =[1,2,3]
file_csv = codecs.open('node_csv.csv','w+','utf-8')
mid = csv.writer(file_csv, delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
mid.writerow(node)
⽣成⽂件内容效果如下:
1.2.2 ⼆维列表保存
import codecs
import csv
node_pair =[[1,2],[2,3]]
file =open('node_pair_csv.csv','a')
file_csv = codecs.open('node_pair_csv.csv','w+','utf-8')
mid = csv.writer(file_csv, delimiter=' ', quotechar=' ', quoting=csv.QUOTE_MINIMAL)
for i in node_pair:
mid.writerow(i)
⽣成⽂件内容效果如下:
1.3 csv⽂件(借助pandas)
实现列表保存到csv⽂件还可以借助pandas,下⾯对其进⾏说明。
1.3.1 ⼀维列表
1.3.1.1 保存csv⽂件
import codecs
import csv
node =[1,2,3]
mid = pd.DataFrame(node)
<_csv('./node_csv.csv', header=False, index=False)
⽣成⽂件内容效果如下:
此时保存的数据不再是成⼀⾏,⽽是成为了⼀列,如果想要变为⼀⾏来保存,可以在列表外再套⼀层列表即可。
import codecs
import csv
node =[[1,2,3]]
mid = pd.DataFrame(node)
<_csv('./node_csv.csv', header=False, index=False)
⽣成⽂件内容效果如下:
1.3.1.2 读取csv⽂件
import pandas as pd
mid =ad_csv('./node_csv.csv'))
mid1 =[]
for item in mid:
mid1.append(int(item))
print(mid1)
1.3.2 ⼆维列表
1.3.
2.1 保存csv⽂件
import codecs
import csv
node_pair =[[1,3],[2,3]]
mid = pd.DataFrame(node_pair)
<_csv('./node_pair_csv.csv', header=False, index=False)
⽣成⽂件内容效果如下:
1.3.
2.2 读取csv⽂件
import numpy
mid = np.loadtxt('./node_pair_csv.csv', delimiter=',', dtype=int)
node_pair =[]
for item in mid:
node_pair.append(list(item))
print(node_pair)
⽣成⽂件内容效果如下:
1.4 xls/xlsx⽂件
1.4.1 ⼀维列表
1.4.1.1 保存xls/xlsx⽂件
import pandas as pd
node =[1,2,3]
mid = pd.DataFrame(node)
<_excel(r'node_xlsx.xlsx', header=False, index=False)
⽣成⽂件内容效果如下:
同1.3.1⼀样如果需要将数据都记录在第⼀⾏时,只需要在列表外部再套⼀层列表。
1.4.1.2 读取xls/xlsx⽂件
读取xls/xlsx⽂件,这⾥有⼀个需要注意的地⽅,有些⼈直接使⽤下⾯的语句打开xlsx⽂件会报错,打开xls⽂件就没问题,这主要是由于xlrd模块版本更新的问题,将版本退回到1.2.0即可正常运⾏。还有其他解决办法,请:
import pandas as pd
mid =ad_excel('./node_xlsx.xlsx', header=None))
print(mid)
输出如下:
1.4.2 ⼆维列表
1.4.
2.1 保存xls/xlsx⽂件
import pandas as pd
node_pair =[[1,3],[2,3]]
mid = pd.DataFrame(node_pair)
<_excel(r'node_pair_xlsx.xlsx', header=False, index=False)
1.4.
2.2 读取xls/xlsx⽂件
import xlrd
data = xlrd.open_workbook(r'./node_pair_xlsx.xlsx')  # 获取⽂本对象
table = data.sheets()[0]  # 根据index获取某个sheet
rows = ws  # 获取当前sheet页⾯的总⾏数,把每⼀⾏数据作为list放到 list result =[]
for i in range(rows):
col = w_values(i)  # 获取每⼀⾏数据
mid =[]
for item in col:
mid.append(int(item))
result.append(mid)
print(result)
⽣成⽂件内容效果如下:
1.5 npy⽂件
.npy⽂件是numpy专⽤的⼆进制⽂件
1.5.1 ⼀维列表
import numpy as np
node =[1,2,3]
np.save('node.npy', node_pair)  # 保存⽂件
a = np.load('node.npy', allow_pickle=True)  # 读取⽂件
node =[]
for item in a:  # 将ndarray转换为原字典类型
node.append(item)
print(node)
⽣成⽂件⽆法直接打开,这⾥与加载⼀起写在代码⾥了,输出效果如下:1.5.2 ⼆维列表
import numpy as np
node_pair =[[1,3],[2,3]]
np.save('node_dict.npy', node_pair)  # 保存⽂件
mid = np.load('node_dict.npy', allow_pickle=True)  # 读取⽂件
node_pair =[]
for item in mid:  # 将ndarray转换为原字典类型
node_pair.append(list(item))
print(node_pair)
⽣成⽂件⽆法直接打开,这⾥与加载⼀起写在代码⾥了,输出效果如下:2. 字典
2.1 保存到txt⽂件
node_dict ={1:'a',2:'b',3:'c',4:'d'}
mid =str(node_dict)
f =open('','w')
f.writelines(mid)
f.close()

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。