请帮忙写一个python脚本,获取txt中每行中冒号后面的内容(冒号可能会有多个,以最右边的冒号为准)
使用场景是:在一个文件夹下面有多个txt文本,需要批量提取每个个txt中冒号后面的数值然后保存到一个新的txt中。
import os
result = []
folder = '1' # 文件夹地址
for f in os.listdir(folder): # 读取文件夹下的所有内容
if f.endswith('.txt'): # 判断是不是txt文件
with open(os.path.join(folder,f),'r') as r: # 读取文件内容
data = r.read().split('\n')
for i in data:
result.append(i.split(':')[-1]) # 根据‘:’对其进行split,取最后一个
with open('result.txt','w') as r1:
r1.write('\n'.join([i for i in result])) # 写入到文件中
文件夹地址为当前文件夹里面的名称为1的文件夹,生成的结果存储在当前文件夹的result.txt文件里面
如果对你有帮助,帮忙采纳一下!
有帮助麻烦点个采纳【本回答右上角】,谢谢~~
import os
folder=r"D:\python\txt"#目录路径,注意修改
values=[]
for root,dirs,files in os.walk(folder):
for f in files:
with open(os.path.join(folder,f)) as f:
lines=f.read().split('\n')
for line in lines:
item=line.split(':')[-1]
values.append(item)
print(values)
with open("result.txt",'w') as f:
f.write('\n'.join(values))
使用rsplit()从右端分割字符串即可,参考如下代码:
with open('t9141.txt','r') as f,open('t9141c.txt','w') as f1:
lines=[x for x in f.read().split('\n') if x!='']
for line in lines:
f1.write(line.rsplit(':')[-1]+'\n')
运行结果:
on
loka123
nurhamad
alaamoussa
kourt
pebble4
mcintyre7
如有帮助,请点采纳。
import os
# 遍历文件,按特定规则处理
def trans(root_dir):
for f in os.listdir(root_dir):
if f.endswith(".txt") and not f.endswith('_transfer.txt'):
f_path = os.path.join(root_dir, f)
target_f = f_path.replace('.txt', '_transfer.txt')
# 读取原始文件并处理
with open(f_path, "r") as f: # 打开文件
str1 = f.read() # 读取文件
print('原始文件:', f_path)
print(str1)
str2 = ''
for i in str1.split("\n"):
str2 = str2 + str(i).split(':')[-1] + '\n'
# 写入目标文件夹文件
print('目标文件:', target_f)
print(str2)
with open(target_f, "w") as f:
f.write(str2) # 自带文件关闭功能,不需要再写f.close()
if __name__ == '__main__':
trans(r"txts/")