python读取txt文件:(思路:先打开文件,读取文件,最后用for循环输出内容)
1、读取
1.1基于python csv库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
#3.读取csv至字典x,y
import csv
# 读取csv至字典
csvFile = open (r 'G:\训练小样本.csv' , "r" )
reader = csv.reader(csvFile)
#print(reader)
# 建立空字典
result = {}
i = 0
for item in reader:
if reader.line_num = = 1 :
continue
result[i] = item
i = i + 1
# 建立空字典
j = 0
xx = {}
yy = {}
for i in list ( range ( 29 )):
xx[j] = result[i][ 1 : - 1 ]
yy[j] = result[i][ - 1 ]
# print(x[j])
# print(y[j])
j = j + 1
csvFile.close()
##3.1字典转换成list
X = []
Y = []
for i in xx.values():
X.append(i)
for j in xx.values():
X.append(j)
|
改进的CSV读取,直接从CSV文件读取到 list:
1
2
3
4
5
6
7
8
|
#加载数据
def loadCSV(filename):
dataSet = []
with open (filename, 'r' ) as file :
csvReader = csv.reader( file )
for line in csvReader:
dataSet.append(line)
return dataSet
|
读取的方式,是一行一行读取。
1.2 pandas读取
1
2
|
import pandas as pd
test_df = pd.read_excel(r 'G:\test_linearRegression.xlsx' )
|
2、写入
1
2
3
4
5
6
7
8
9
10
11
12
13
|
import csv
#程序三
with open (r 'G:\0pythonstudy\chengxu\test.csv' , 'w' ,newline = '') as myFile:
myWriter = csv.writer(myFile)
myWriter.writerow([ 7 , 'g' ])
myWriter.writerow([ 8 , 'h' ])
myList = [[ 1 , 2 , 3 ],[ 4 , 5 , 6 ]]
myWriter.writerows(myList)
# myFile.close()
with open (r 'G:\0pythonstudy\chengxu\test.csv' , "r" ) as data:
result = csv.reader(data)
for item in result:
print (item)
|
写入,如果纯用 open(r'G:\0pythonstudy\chengxu\test.csv','w'),
就会出现多出一空行。
二、Excel文件处理
1、读取
方法一:
使用Python的 xlrd包。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
#1、导入模块
import xlrd
#2、打开Excel文件读取数据
data = xlrd.open_workbook( 'test_data.xlsx' )
# print('data',data)
#3、使用技巧
#获取一个工作表
table = data.sheets()[ 0 ] #通过索引顺序获取
# print('table',table)
print (table.nrows) #table 行数
print (table.ncols)
table = data.sheet_by_index( 0 ) #通过索引顺序获取
# print('table',table)
table = data.sheet_by_name(u 'Sheet1' ) #通过名称获取
# 获取整行和整列的值(数组)
i = 1
print (table.row_values(i)) #获得第i行数据
print (table.col_values(i)) #获得第i列数据
|
运行结果:
1
2
3
4
|
9
2
[ 2.0 , 6.0 ]
[ 5.0 , 6.0 , 7.0 , 8.0 , 9.0 , 10.0 , 11.0 , 12.0 , 13.0 ]
|
方法二:
或者,可以把Excel文件转换成csv格式文件,直接修改后缀名,好像会出错,还是建议另存为修改成csv文件。
方法三:
使用pandas包
1
2
|
import pandas as pd
test_df = pd.read_excel(r 'G:\test.xlsx' )
|
pandas 读取为dataframe格式,其中dataframe.values是nparray格式,nparray.tolist()是python list 格式。
注意:pandas和 xlrd的区别在于,pandas会把第一行和第一列作为索引的表头;xlrd则会把所有的数据都读取,没有索引表头一说。
三、dat文件处理
把.dat文件修改成.txt格式文件。
这里可以参考 python批量更改文件后缀名 一文。
四、txt文件处理
a = numpy.loadtxt('odom.txt')
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
a [[ 2.49870000e-01
2.50250000e-01
[ 3.64260000e+03
3.72430000e+03
[ 4.53960000e+03
4.50590000e+03
...,
[ 4.74110000e+01
4.89660000e+01
[ 4.10930000e+01
4.20480000e+01
[ 1.83510000e+01
1.68250000e+01
a.shape (52, 500)
|
1
2
3
4
5
6
|
fp = open ( 'test.txt' , 'r' )
lines = fp.readlines()
fp.close()
for line in lines:
username = line.split( ',' )[ 0 ]
password = line.split( ',' )[ 1 ]
|
注:第一句是以只读方式打开文本文件;第二个是读取所有行的数据(read:读取整个文件;readline:读取一行数据);最后一定要关闭文件。最终会返回一个列表,通过for循环可以一个个的读取其中的数据。如username,password。这时候通过split方法进行分割,最终可以得到username password,这样就可以在自动化里面做参数化了。
python读取CSV文件
1
2
3
4
5
|
import csv
date = csv.reader( open ( 'test.csv' , 'r' ))
for test in date:
print test
print test[ 0 ]
|
注:需要先导入csv包,然后通过reader方法读取内容,最终会返回一个列表。想选择某一列数据,只需要制定列表下标即可
python读取excel
需要先安装xlrd模块
账号 | 密码 | 备注 |
1
2
3
4
|
import xlrd
book = xlrd.open_workbook(data_dirs() + '/system.xlsx' )
sheet = book.sheet_by_index( 0 )
print sheet.cell_value( 0 , 2 )
|
注:(0,2)表示第二行第三列的数据,也就是:备注
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对服务器之家的支持。如果你想了解更多相关内容请查看下面相关链接
原文链接:https://blog.csdn.net/rosefun96/article/details/78829620