python重復文件
⑴ 如何用python實現兩個文件重復數據篩選並統計
本文實例展示了Python統計列表中的重復項出現的次數的方法,是一個很實用的功能,適合Python初學者學習借鑒。具體方法如下:
對一個列表,比如[1,2,2,2,2,3,3,3,4,4,4,4],現在我們需要統計這個列表裡的重復項,並且重復了幾次也要統計出來。
方法1:
?
1234
mylist = [1,2,2,2,2,3,3,3,4,4,4,4]myset = set(mylist) #myset是另外一個列表,裡面的內容是mylist裡面的無重復 項for item in myset: print("the %d has found %d" %(item,mylist.count(item)))
方法2:
?
123456
List=[1,2,2,2,2,3,3,3,4,4,4,4]a = {}for i in List: if List.count(i)>1: a[i] = List.count(i)print (a)
利用字典的特性來實現。
方法3:
?
123
>>> from collections import Counter>>> Counter([1,2,2,2,2,3,3,3,4,4,4,4])Counter({1: 5, 2: 3, 3: 2})
這里再增補一個只用列表實現的方法:
?
12345678910
l=[1,4,2,4,2,2,5,2,6,3,3,6,3,6,6,3,3,3,7,8,9,8,7,0,7,1,2,4,7,8,9] count_times = []for i in l : count_times.append(l.count(i)) m = max(count_times)n = l.index(m) print (l[n])
其實現原理就是把列表中的每一個數出現的次數在其對應的位置記錄下來,然後用max求出出現次數最多的位置。
只用這段代碼的話,有一個缺點,如果有多個結果,最後的現實的結果只是出現在最左邊的那一個,不過解決方法也很簡單
⑵ 用python讀取一個txt里的文件時,怎麼去重復
用集合,Python里的set 其定義就是一個無序不重復集合。
你可以按單詞存入一個集合之中,集合會自動幫你去重的
⑶ 用python找出一個a.txt文件中的重復數據,並將重復數據輸出成另一個b.txt文件中
這里首先打開 a.txt 讀取每一行,把每一行的內容作為字典的 key,然後字典的 value 記錄的是重復行出現的次數,d.get 就是取目前的字典的行出現次數的值,默認為 0 就是沒有出現,每次出現 +1
然後循環這個字典,如果 key 對應的 value 大於 1 表示重復出現過,就把這個內容寫到 b.txt
⑷ python如何批量對每一個excel文件進行去重
01
去重
我們使用Pandas庫的drop_plicates(subset=None, keep=『first』, inplace=False)功能來對Excel文件中的重復項進行刪除。
其中,subset參數代表指定列標記,默認當每一條行記錄完全相同時,才會認定為重復行;keep=『』有『first』、『last』和『False』,意思是刪除重復行時,保留first還是last還是全部刪除,默認參數是『first』;inplace=『』有True和Flase,意思是直接替換還是保留副本,默認值是Flase。
讀取Excel
import pandas as pd
df = pd.read_excel('全部.xlsx')
選中列去重
df.drop_plicates(['用戶名稱'])
其中第2、3行的用戶名稱與第0、1行重復,所以被刪除。
03
保存最後一個重復數據
df.drop_plicates(['用戶名稱'],keep='last')
04
保存Excel
df.to_excel('去重後.xlsx')
02
批量獲取Excel文件
在上面我們已經學會如何對單個Excel文件去重了,但是在讀取文件名的時候,我們還是需要手動輸入的,如果文件很多的話,我們要一個一個的輸入,這不僅麻煩,而且也不符合自動化辦公的名頭。所以,我們就需要想辦法取得該目錄下的所有Excel文件。
這里我們用的是Pathlib庫,取得該目錄下所有的xlsx格式文件。
path = 'K:\自動化辦公'
⑸ python怎麼循環生成python文件
循環用於重復執行一些程序塊。從上一講的選擇結構,我們已經看到了如何用縮進來表示程序塊的隸屬關系。循環也會用到類似的寫法。
for循環
for循環需要預先設定好循環的次數(n),然後執行隸屬於for的語句n次。
基本構造是
for 元素 in 序列:
statement
舉例來說,我們編輯一個叫forDemo.py的文件
for a in [3,4.4,'life']:
print a
這個循環就是每次從表[3,4.4,'life'] 中取出一個元素(回憶:表是一種序列),然後將這個元素賦值給a,之後執行隸屬於for的操作(print)。
介紹一個新的Python函數range(),來幫助你建立表。
idx = range(5)
print idx
可以看到idx是[0,1,2,3,4]
這個函數的功能是新建一個表。這個表的元素都是整數,從0開始,下一個元素比前一個大1, 直到函數中所寫的上限 (不包括該上限本身)
(關於range(),還有豐富用法,有興趣可以查閱, Python 3中, range()用法有變化,見評論區)
舉例
for a in range(10):
print a**2
while循環
while的用法是
while 條件:
statement
while會不停地循環執行隸屬於它的語句,直到條件為假(False)
舉例
while i < 10:
print i
i = i + 1
中斷循環
continue # 在循環的某一次執行中,如果遇到continue, 那麼跳過這一次執行,進行下一次的操作
break # 停止執行整個循環
for i in range(10):
if i == 2:
continue
print i
當循環執行到i = 2的時候,if條件成立,觸發continue, 跳過本次執行(不執行print),繼續進行下一次執行(i = 3)。
for i in range(10):
if i == 2:
break
print i
當循環執行到i = 2的時候,if條件成立,觸發break, 整個循環停止。
⑹ Python怎麼從文件里的數據去重復,去重復後,再保存到文件里,把重復的數據保存出來
內容讀出來通過逗號分割成一個列表,再去掉重復的,再寫入到文件裡面
#-*-coding:utf-8-*-
filename='data.txt'
withopen(filename,'r')asf:
content=f.read()
content=list(set(content.split(',')))
content=','.join(content)
withopen(filename,'w')as_f:
_f.write(content)
⑺ 如何用python編寫一個重復執行的程序要求用戶輸入一個字元串如果輸入的字元串
文件夾之中,然後打開python編輯器來編寫這個python文件的代碼。在文件的頂部寫上導入os模塊的代碼,然後創建一個無限的while循環。
2.
在循環結構之中使用變數去保存幾個字元串,字元串的內容就是python xxx.py。在循環的末尾使用os模塊的system()並將一
⑻ python寫的ftp自動上傳腳本,怎麼判斷重復的文件不重傳呢size判斷不夠精確 有沒有更好的方式跪求大神
這個沒有特別准確的辦法。你連SIZE檢測也信不過。只有自己改程序了。
辦法1:改寫FTP程序,加一個hash確認。以前我這么做過。在python里可以輕松做一個FTP SERVER,加上自己做的MD5檢測就可以了。
辦法2:通過nc轉發請求,在NC里設置一個檢測。
辦法3:如果文件不大,上傳完再下載下來檢測
辦法4:採用自己傳有的流水號,重新設置FTP SERVER,讓它定期根據流水號,生成檢驗碼,然後你在客戶端定期下載這個文件。 這個方法過去在電信系統里經常使用。防出錯效果很好。
⑼ 用python找出一個txt文件中的重復數據,並將重復數據輸出成另一個txt文件
假設你的文件名是a.txt,寫到b.txt
d={}
forlineinopen('a.txt'):
d[line]=d.get(line,0)+1
fd=open('b.txt','w')
fork,vind.items():
ifv>1:
fd.write(k)
fd.close()