目錄
-
刪除文件中包含關鍵詞的行
帶中文
刪除匹配“月”的行
import re
lineList = []
matchPattern = re.compile(r'月')
file = open('D:\myLog.txt','r',encoding='UTF-8')
while 1:
line = file.readline()
if not line:
print("Read file End or Error")
break
elif matchPattern.search(line):
pass
else:
lineList.append(line)
file.close()
file = open(r'D:\target.txt', 'w',encoding='UTF-8')
for i in lineList:
file.write(i)
file.close()
---------------------------------
刪除匹配“INVALID PARAMETER”的行
import re
list = []
matchPattern = re.compile(r'INVALID PARAMETER')
file = open('C:\hopeinsighFPGA.txt','r')
while 1:
line = file.readline()
if not line:
print("Read file End or Error")
break
elif matchPattern.search(line):
pass
else:
list.append(line)
file.close()
file = open(r'C:\target.txt', 'w')
for i in list:
file.write(i)
file.close()
https://blog.csdn.net/momomi_2005/article/details/23766895
re.compile(),正則表達式在模式匹配前進行預編譯;使用預編譯代碼比字符串快;
test.txt中包含以下文字:
1:li
2:test
3:num
在運行完程序,生成的target.txt中,內容為
1:li
3:num
刪除特定字符
1.1、刪除特定位置的字符
使用.pop()
方法。輸入參數,即為要刪除的索引。
刪除第二個字符
string = '公眾號:土堆碎念'
list_str = list(string)
list_str.pop(1)
list_str = ''.join(list_str)
print(list_str)
1.2、刪除指定字符
.replace()方法
比如,字符串a='公眾號公眾號:土堆碎念'
,嘗試將其中的公
字符刪除,將公
字符替換成空字符。
a= '公眾號:土堆碎念'
b = a.replace('公','')
count
參數就可以指定要替換幾個。我們無意中知道了如何刪除指定數目的字符。
比如,字符串a='公公眾號公:土堆碎念'
,嘗試將其中的公
字符刪除,將公
字符替換成空字符。
a='公公眾號公:土堆碎念'
b = a.replace('公','',3)
b
Out[38]:'眾號:土堆碎念'
b = a.replace('公','',2)
b
Out[38]:'眾號公
:土堆碎念'
import re
lineList = []
file = open('D:\mylog2.txt','r',encoding='UTF-8')
while 1:
line = file.readline()
if not line:
print("Read file End or Error")
break
line2 = line.replace('篇','')
lineList.append(line2)
file.close()
file = open(r'D:\target3.txt', 'w',encoding='UTF-8')
for i in lineList:
file.write(i)
file.close()
正則表達式
使用re.sub()
方法,這個方法的功能更強大,可以替換特定模式的字符。
sub(pattern, repl, string, count=0, flags=0)
pattern
代表指定的模式,這是強大的原因,如果簡單點使用,只指定特定字符,就可以用'特定字符'
來表示模式。
repl
代表的是,需要替換成的字符,如果刪除,就是替換成空字符。
string
代表的是,需要被替換的字符串。
count
是替換的次數。
import re
a='公眾號公眾號:土堆碎念'
re.sub('公','',a)
Out[45]:'眾號眾號:土堆碎念'
刪除csv文件中的某幾列
import pandas as pd
df=pd.read_csv('D:\qq.csv', header=None)
df=df.drop([0,1],axis=1) #按列的位置
df=df.drop([‘colname1’,‘colname2’],axis=1) #按列名稱
df
中文
import pandas as pd
df=pd.read_csv('D:\qq.csv', header=None,encoding='gbk')
df=df.drop([0,1],axis=1)
df
讀取txt文件並取其某一列數據
菜鳥筆記1
首先讀取的txt文件如下:
AAAAF110 0003E818 0003E1FC 0003E770 0003FFFC 90
AAAAF110 0003E824 0003E208 0003E76C 0003FFFC A5
AAAAF110 0003E814 0003E204 0003E760 0003FFFC 85
AAAAF110 0003E7F0 0003E208 0003E764 0003FFFC 68
AAAAF110 0003E7CC 0003E1FC 0003E758 0003FFFC 2B
現在要讀取其每行的第3個數據,將其組成一個數組,代碼如下:
import codecs
f = codecs.open('data.txt', mode='r', encoding='utf-8') # 打開txt文件,以‘utf-8’編碼讀取
line = f.readline() # 以行的形式進行讀取文件
list1 = []
while line:
a = line.split()
b = a[2:3] # 這是選取需要讀取的位數
list1.append(b) # 將其添加在列表之中
line = f.readline()
f.close()
for i in list1:
print(i)
輸出結果為:
['0003E1FC']
['0003E208']
['0003E204']
['0003E208']
['0003E1FC']
原文鏈接:https://blog.csdn.net/qq_38984928/article/details/82998151
替換文件里的字符
#!/bin/env python
#the source content in text.txt is "testabc"
#the destination content in text.txt is "testdef"
#open the text file and get the content
f=open("text.txt","r")
content=f.read()
print content
#replace "abc" with "def"
content=content.replace("abc","def")
print content
f.close()
#write the destination content to text.txt
f=open('text.txt','w')
f.write(content)
f.close()
刪除TXT中每一行前面的數字字符
import re
lineList = []
data = open(r'D:\mylog2.txt','r',encoding='UTF-8').readlines()
data = [re.sub('^\d+ |^\d+$', '', line.strip()) for line in data]
file = open(r'D:\target3.txt', 'w',encoding='UTF-8')
for i in data:
file.write('\n'+i)
file.close()
# 讀取源文件的全部內容
# 操作完成后,data是以行為單元的列表
data = open(r'D:\mylog2.txt','r',encoding='UTF-8').readlines()
# 迭代data處理每一行:去掉行首尾空白字符后正則替換行首的數字和數字后面的空格(如果有的話)
# 操作完成后,data依舊是行為單元的列表
data = [re.sub('^\d+ |^\d+$', '', line.strip()) for line in data]
# 寫結果文件,注意:會覆蓋原始文件
with open(r'D:\mylog2.txt', 'w',encoding='UTF-8') as out:
out.write('\n'.join(data))
刪除TXT中的某列
方法1:
python代碼如下:
file = open("pip list.txt", "r") # 以只讀模式讀取文件
lines = []
for i in file:
lines.append(i) # 逐行將文本存入列表lines中
file.close()
new = []
for line in lines: # 逐行遍歷
p = 0 # 定義計數指針
for bit in line: # 對每行進行逐個字遍歷
if bit == " ": # 遇到空格時進行處理
new.append(line[0:p]) # 將line中的0:p字段存入新列表new中,用於寫入新的.txt中
break # 處理完一行后跳出當前循環
else:
p = p + 1 # 如果bit不是空格,指針加一
# 以寫的方式打開文件,如果文件不存在,就會自動創建,如果存在就會覆蓋原文件
file_write_obj = open("pip list new.txt", 'w')
for var in new:
file_write_obj.writelines(var)
file_write_obj.writelines('\n')
file_write_obj.close()
處理前: 處理后:
https://blog.csdn.net/lccflccf/article/details/82860978
方法2:
txt---->df----->drop列
刪除TXT中的帶/不帶指定字符的行(並保留帶指定字符的行)
#!/bin/env python
import shutil, sys, os
noneed = ["null"]
need = ['{']
def isInArray (array, line):
for item in array:
if item in line:
return True
return False
fname = r'D:\download.json'
fresult = r'D:\download2.json'
#open(fname, 'r', encoding='gb2312')
with open(fname, 'r',encoding='UTF-8') as f:
with open(fresult, 'w', encoding='UTF-8') as g:
for line in f.readlines():
if isInArray(need, line):#含need里面字符的行 都要
g.write(line)
continue
if not isInArray(noneed, line):#不含noneed里面字符的行 都要
g.write(line)
中文:
Python處理txt數據實例:https://blog.csdn.net/hust_a/article/details/51944000