⑴ python 截取數據
import re
from openpyxl import *
wb = load_workbook(r'你的excel路徑')
sn = wb.sheetnames[0]
ws = wb[sn]
for i in range(1,ws.max_row):
----info = ws.cell(row=i+1,column=3).value
----try:
--------msg = re.findall('"msg":"([\S\s]*?)"',info)[0]
----except:
--------msg = ''
----ws.cell(row=i + 1, column=4).value = msg
wb.save(r'新建excel路徑')
'''需要安裝第三方庫openpyxl'''
⑵ python怎麼讀取最後一行數據
可以採用這樣的方法:
f=open('data2.txt')
print(''.join(f.readlines()[-1]))
如果文件很大,考慮到內存的問題,也可以用如下方法:
f=open('data2.txt')
for a in f:
pass
f.close()
print(a)
⑶ python怎麼從txt文件中讀取特定列的數據,新手,求大神指點!
path='e:/lijing/data.txt'
#path存的是txt文件的路徑
lie=[]
#初始化lie列表
for line in open(path):#遍歷txt文件中的所有行
line=line.replace('\n','').split(",")#替換和分割
lie.append(line[6])#將第六行的數據重新存在lie中
print lie
#lie這個列表中存的是txt文檔中第六行的數據。
⑷ python怎麼把指定列放在最後一列
添加一列的方式,如下:
⑸ python把數列第一個排到最後一個
把第一個取出賦值給一個變數,然後刪除列表中第一個數(或者用新的空列表接受原列表第二個數到最後一個),最後append
⑹ python如何實現復制excel第2列的2-8行到第3列1-7行
⑺ python 能不能做到從一個表格一列的第二行開始復制到另一個表格的某一列的第二行
Python 中有許多「開蓋即食」的模塊(比如 os,subprocess 和 shutil)以支持文件 I/O 操作。在這篇文章中,你將會看到一些用 Python 實現文件復制的特殊方法。下面我們開始學習這九種不同的方法來實現 Python 復制文件操作。
在開始之前,你必須明白為什麼了解最適合你的 Python 復制文件方法是如此重要。這是因為文件 I/O 操作屬於性能密集型而且經常會達到瓶頸。這就是為什麼你應該根據你的應用程序的設計選擇最好的方法。
一些共享資源的程序會傾向於以阻塞模式來復制文件,而有些則可能希望以非同步方式執行。比如 — 使用線程來復制文件或者啟動單獨的進程來實現它。還有一點需要考慮的是平台的可移植性。這意味著你應該知道你要運行的程序所在的目標操作系統(Windows/Linux/Mac OS X 等)。
用 Python 復制文件的 9 種方法具體是:
shutil file() 方法
shutil () 方法
shutil fileobj() 方法
shutil 2() 方法
os popen 方法
os system() 方法
threading Thread() 方法
subprocess call() 方法
subprocess check_output() 方法
Shutil Copyfile()方法
只有當目標是可寫的,這個方法才會將源內容復制到目標位置。如果你沒有寫入許可權,則會導致 IOError 異常。
它會打開輸入文件進行讀取並忽略其文件類型。接下來,它不會以任何不同的方式處理特殊文件,也不會將它們復制為新的特殊文件。
Copyfile() 方法使用下面的低級函數 fileobj()。它將文件名作為參數,打開它們並將文件句柄傳遞給 fileobj()。這個方法中有一個可選的第三個參數,你可用它來指定緩沖區長度。然後它會打開文件並讀取指定緩沖區大小的塊。但是,默認是一次讀取整個文件。
file(source_file, destination_file)
以下是關於 file() 方法的要點。
它將源內容復制到目標文件中。
如果目標文件不可寫入,那麼復制操作將導致 IOError 異常。
如果源文件和目標文件都相同,它將會返回 SameFileError。
但是,如果目標文件之前有不同的名稱,那麼該副本將會覆蓋其內容。
如果目標是一個目錄,這意味著此方法不會復制到目錄,那麼會發生 Error 13。
它不支持復制諸如字元或塊驅動以及管道等文件
⑻ python計算每一行第3列到最後一列的和
是表格嗎?
那得先 安裝openpyxl
控制台輸出
⑼ 怎樣用python,讀取excel中的一列數據
用python讀取excel中的一列數據步驟如下:
1、首先打開dos命令窗,安裝必須的兩個庫,命令是:pip3 installxlrd;Pip3 install xlwt。
⑽ python提取excel表中的數據兩列
1、首先打開excel表格,在單元格中輸入兩列數據,需要將這兩列數據進行比對相同數據。
2、然後在C1單元格中輸入公式:=VLOOKUP(B1,A:A,1,0),意思是比對B1單元格中A列中是否有相同數據。
3、點擊回車,即可將公式的計算結果顯示出來,可以看到C1中顯示的是B1在A列中找到的相同數據。
4、將公式向下填充,即可發現C列中顯示出的數字即為有相同數據的,顯示「#N/A」的為沒有找到匹配數據的。
5、將C1-C4中的數據進行復制並粘貼成數值,即可完成相同數據的提取操作。
在實際研究中,我們經常需要獲取大量數據,而這些數據很大一部分以pdf表格的形式呈現,如公司年報、發行上市公告等。面對如此多的數據表格,採用手工復制黏貼的方式顯然並不可取。那麼如何才能高效提取出pdf文件中的表格數據呢?
Python提供了許多可用於pdf表格識別的庫,如camelot、tabula、pdfplumber等。綜合來看,pdfplumber庫的性能較佳,能提取出完整、且相對規范的表格。因此,本推文也主要介紹pdfplumber庫在pdf表格提取中的作用。
作為一個強大的pdf文件解析工具,pdfplumber庫可迅速將pdf文檔轉換為易於處理的txt文檔,並輸出pdf文檔的字元、頁面、頁碼等信息,還可進行頁面可視化操作。使用pdfplumber庫前需先安裝,即在cmd命令行中輸入:
pip install pdfplumber
pdfplumber庫提供了兩種pdf表格提取函數,分別為.extract_tables( )及.extract_table( ),兩種函數提取結果存在差異。為進行演示,我們網站上下載了一份短期融資券主體信用評級報告,為pdf格式。任意選取某一表格,其界面如下:
接下來,我們簡要分析兩種提取模式下的結果差異。
(1).extract_tables( )
可輸出頁面中所有表格,並返回一個嵌套列表,其結構層次為table→row→cell。此時,頁面上的整個表格被放入一個大列表中,原表格中的各行組成該大列表中的各個子列表。若需輸出單個外層列表元素,得到的便是由原表格同一行元素構成的列表。例如,我們執行如下程序:
輸出結果:
(2).extract_table( )
返回多個獨立列表,其結構層次為row→cell。若頁面中存在多個行數相同的表格,則默認輸出頂部表格;否則,僅輸出行數最多的一個表格。此時,表格的每一行都作為一個單獨的列表,列表中每個元素即為原表格的各個單元格內容。若需輸出某個元素,得到的便是具體的數值或字元串。如下:
輸出結果:
在此基礎上,我們詳細介紹如何從pdf文件中提取表格數據。其中一種思路便是將提取出的列表視為一個字元串,結合Python的正則表達式re模塊進行字元串處理後,將其保存為以標准英文逗號分隔、可被Excel識別的csv格式文件,即進行如下操作:
輸出結果:
盡管能獲得完整的表格數據,但這種方法相對不易理解,且在處理結構不規則的表格時容易出錯。由於通過pdfplumber庫提取出的表格數據為整齊的列表結構,且含有數字、字元串等數據類型。因此,我們可調用pandas庫下的DataFrame( )函數,將列表轉換為可直接輸出至Excel的DataFrame數據結構。DataFrame的基本構造函數如下:
DataFrame([data,index, columns])
三個參數data、index和columns分別代表創建對象、行索引和列索引。DataFrame類型可由二維ndarray對象、列表、字典、元組等創建。本推文中的data即指整個pdf表格,提取程序如下:
其中,table[1:]表示選定整個表格進行DataFrame對象創建,columns=table[0]表示將表格第一行元素作為列變數名,且不創建行索引。輸出Excel表格如下:
通過以上簡單程序,我們便提取出了完整的pdf表格。但需注意的是,面對不規則的表格數據提取,創建DataFrame對象的方法依然可能出錯,在實際操作中還需進行核對。
關於我們
微信公眾號「爬蟲俱樂部」分享實用的stata命令,歡迎轉載、打賞。爬蟲俱樂部是由李春濤教授領導下的研究生及本科生組成的大數據分析和數據挖掘團隊。
投稿要求:
1)必須原創,禁止抄襲;
2)必須准確,詳細,有例子,有截圖;