當前位置:首頁 » 網頁前端 » python腳本按字元串讀取文本中的一行
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

python腳本按字元串讀取文本中的一行

發布時間: 2023-01-31 06:00:25

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())