1. 在python中,怎么可以通过一个字符串获得其所在行的所有信息呢
简单的这种查找即用“in”指令就可以。
例如你要搜索的是一个文本,那么可以用readlin()逐行读取文本
然后对每一个line进行判断:
if 'think' in line:
print(line)
当然,如果进行更复杂的匹配就要用正则表达式了
如果不会的话可以去网上找找教程,我没法给你说,因为光正则表达式本身的教程就是可以出一本书的……
2. 怎么用python读取txt文件里指定行的内容,并导入excel
一、读excel表
读excel要用到xlrd模块,官网安装(http://pypi.python.org/pypi/xlrd)。然后就可以跟着里面的例子稍微试一下就知道怎么用了。大概的流程是这样的:
1、导入模块
复制代码代码如下:
import xlrd
2、打开Excel文件读取数据
复制代码代码如下:
data = xlrd.open_workbook('excel.xls')
3、获取一个工作表
① table = data.sheets()[0] #通过索引顺序获取
② table = data.sheet_by_index(0) #通过索引顺序获取
③ table = data.sheet_by_name(u'Sheet1')#通过名称获取
4、获取整行和整列的值(返回数组)
复制代码代码如下:
table.row_values(i)
table.col_values(i)
5、获取行数和列数
复制代码代码如下:
table.nrows
table.ncols
6、获取单元格
复制代码代码如下:
table.cell(0,0).value
table.cell(2,3).value
就我自己使用的时候觉得还是获取cell最有用,这就相当于是给了你一个二维数组,余下你就可以想怎么干就怎么干了。得益于这个十分好用的库代码很是简洁。但是还是有若干坑的存在导致话了一定时间探索。现在列出来供后人参考吧:
1、首先就是我的统计是根据姓名统计各个表中的信息的,但是调试发现不同的表中各个名字貌似不能够匹配,开始怀疑过编码问题,不过后来发现是因为空格。因为在excel中输入的时候很可能会顺手在一些名字后面加上几个空格或是tab键,这样看起来没什么差别,但是程序处理的时候这就是两个完全不同的串了。我的解决方法是给每个获取的字符串都加上strip()处理一下。效果良好
2、还是字符串的匹配,在判断某个单元格中的字符串(中文)是否等于我所给出的的时候发现无法匹配,并且各种unicode也不太奏效,网络过一些解决方案,但是都比较复杂或是没用。最后我采用了一个比较变通的方式:直接从excel中获取我想要的值再进行比较,效果是不错就是通用行不太好,个呢不能问题还没解决。
二、写excel表
写excel表要用到xlwt模块,官网下载(http://pypi.python.org/pypi/xlwt)。大致使用流程如下:
1、导入模块
复制代码代码如下:
import xlwt
2、创建workbook(其实就是excel,后来保存一下就行)
复制代码代码如下:
workbook = xlwt.Workbook(encoding = 'ascii')
3、创建表
复制代码代码如下:
worksheet = workbook.add_sheet('My Worksheet')
4、往单元格内写入内容
复制代码代码如下:
worksheet.write(0, 0, label = 'Row 0, Column 0 Value')
5、保存
复制代码代码如下:
workbook.save('Excel_Workbook.xls')
由于我的需求比较简单,所以这上面没遇到什么问题,唯一的就是建议还是用ascii编码,不然可能会有一些诡异的现象。
当然xlwt功能远远不止这些,他甚至可以设置各种样式之类的。附上一点例子
复制代码代码如下:
Examples Generating Excel Documents Using Python's xlwt
Here are some simple examples using Python's xlwt library to dynamically generate Excel documents.
Please note a useful alternative may be ezodf, which allows you to generate ODS (Open Document Spreadsheet) files for LibreOffi
3. python读取文本内每行指定内容
可以参考下面的代码:
f=file(yourpath)
for line in f:
t = line.split("==")
part_1 = t[0] + "=="
(part_2,part_3) = t[1].split("--")
del t
print "第一段:%s 第二段:%s 第三段:%s" %(part_1,part_2,part_3)
(3)python脚本按字符串读取文本中的一行扩展阅读:
python参考函数
callable(obj) 查看一个obj是不是可以像函数一样调用
repr(obj) 得到obj的表示字符串,可以利用这个字符串eval重建该对象的一个拷贝
eval_r(str) 表示合法的python表达式,返回这个表达式
hasattr(obj,name) 查看一个obj的name space中是否有name
setattr(obj,name,value) 为一个obj的name space中的一个name指向vale这个object
4. Python程序,要求打开一个文本文件,从固定行开始读取一直读取某一匹配结果的前一行
实现此功能的代码如下:
f = open('xx.txt')
lines = f.readlines()
f.close()
l_list = lines[1:] #从第二行开始
for l in l_list:
if l.find('a') ==-1:
print l #在没有找到a之前一直打印
else:
break #如果找到,则跳出循环
(4)python脚本按字符串读取文本中的一行扩展阅读:
用python读取文本文件,对读出的每一行进行操作的实现方式如下:
f=open("test.txt","r")
whileTrue:
line=f.readline()
ifline:
pass
line=line.strip()
p=line.rfind('.')
filename=line[0:p]
print"create%s"%line
else:
break
f.close()
5. 用python读取文本文件,对读出的每一行进行操作,这个怎么写
用python读取文本文件,对读出的每一行进行操作,写法如下:
f=open("test.txt","r")
whileTrue:
line=f.readline()
ifline:
pass#dosomethinghere
line=line.strip()
p=line.rfind('.')
filename=line[0:p]
print"create%s"%line
else:
break
f.close()
6. python怎么从键盘以字符串形式读取一行数值,以空格分割字符串成列表,转换列表
可以一次全读过,用split()函数生成list,再转成整就行了。
如下,自己执行看看结果,a.txt里是用空格分开的数据.
>>> f=open("c:\\a.txt")
>>> s=f.read()
>>> print(s)
>>> print(s.split())