首页 > 编程语言 >python数据清洗日期格式和ipv4地址格式

python数据清洗日期格式和ipv4地址格式

时间:2023-10-19 12:11:08浏览次数:40  
标签:city python ip content re ipv4 file 格式 data

清洗日期格式

import re
from datetime import datetime

# 读取文件
with open('result.txt', 'r') as file:
    data = file.read()

# 使用正则表达式查找日期时间字符串
pattern = r'(\d{2}/[A-Za-z]{3}/\d{4}:\d{2}:\d{2}:\d{2} \+\d{4})'
matches = re.findall(pattern, data)

# 将匹配的日期时间字符串转换为所需的格式
for match in matches:
    # 解析原日期时间字符串
    old_date = datetime.strptime(match, '%d/%b/%Y:%H:%M:%S %z')

    # 格式化新日期时间字符串
    new_date = old_date.strftime('%Y/%m/%d %H:%M')

    # 将原字符串替换为新字符串
    data = data.replace(match, new_date)

# 将修改后的数据写回文件
with open('out.txt', 'w') as file:
    file.write(data)

清洗ipv4格式

import re
import requests
import concurrent.futures

# 用于匹配IPv4地址的正则表达式
ipv4_pattern = re.compile(r'\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\b')

# 用于发送API请求并获取城市信息的函数
def get_city_info(ip):
    response = requests.get(f'http://ip-api.com/json/{ip}')
    data = response.json()
    return data['city'] if data['status'] == 'success' else ip

# 读取文件内容
with open('out.txt', 'r') as file:
    content = file.read()

    # 使用正则表达式查找所有IPv4地址
    ip_addresses = re.findall(ipv4_pattern, content)

    # 使用多线程并行处理IP地址查询
    with concurrent.futures.ThreadPoolExecutor(max_workers=5) as executor:
        city_results = list(executor.map(get_city_info, ip_addresses))

    # 替换IPv4地址为城市信息
    for old_ip, new_city in zip(ip_addresses, city_results):
        content = content.replace(old_ip, new_city)

# 将修改后的内容写回文件
with open('output.txt', 'w') as file:
    file.write(content)

标签:city,python,ip,content,re,ipv4,file,格式,data
From: https://www.cnblogs.com/yzx-sir/p/17774435.html

相关文章

  • Linux shell编程学习笔记4:修改命令行提示符格式(内容和颜色)
    一、命令行提示符格式内容因shell类型而异Linux终端命令行提示符内容格式则因shell的类型而异,例如CoreLinux默认的shell是sh,其命令行提示符为黑底白字,内容为:tc@box:/$其中,tc为当前用户名,box为主机名,/为当前目录路径,$表示当前用户类型是普通用户 。 二、环境变量PS1存储了命令行提......
  • Python中如何将字符串变成数字?
    字符串和数字是Python中常见的数据类型,而且在撰写Python程序的时候,也经常会遇到需要将字符串转换为数字的情况,那么Python中如何将字符串变成数字?有多种方法可以使用,接下来一起来看看具体内容介绍。1、使用int()函数int()函数可以将字符串转换为整数类型。例如,将字符串......
  • python脚本中应用多线程和多进程理解
    脚本内容因为要读取mongo某个全表数据(亿级别),有个字段有索引且是一堆多的关系从其他表读取所有这个字段(十万级别),再读取大表因为数据量大所以写个测试,从中拿出几条去大表查询(每次读到十万级别数据)多线程和多进程的影响不使用多线/进程file=open('test2.csv','w')content......
  • python写爆破字典
    #coding:utf-8withopen('username.txt','wb')asf:foriinrange(00000,99999):line=str('w'+'%05d'%i)+'\n'f.write(line)f.close()    ......
  • python01
    #==============================#单行注释以警号开始#注释一般是用在有意义的代码上,helloworld大家都看得懂,没必要注释"""  多行注释内容,三个双引号或者单引号都可以  '''多行注释内容'''"""print("HelloWorld!")#==============================#......
  • vue2和vue3导出页面为PDF格式:jspdf和html2canvas
    一、vue2导出PDF使用步骤1、安装html2canvas,将页面html转换成图片npminstall--savehtml2canvas卸载:npmuninstallhtml2canvas指定版本安装:[email protected]、安装jspdf,将图片生成pdfnpminstalljspdf--save3、定义全局函数在指......
  • macOS 支持 Raw 格式的相机名称 All In One
    macOS支持Raw格式的相机名称AllInOneRawSupport```sh$system_profiler$system_profiler>system_profiler.md#具体CPU型号信息隐藏了/加密了......
  • 21.python异常处理和断言
    python异常处理和断言目录python异常处理和断言异常捕获流程案例触发异常异常类型异常处理的优点断言函数assert异常捕获流程捕捉异常可以使用try/except语句。try/except语句用来检测try语句块中的错误,从而让except语句捕获异常信息并处理。try: <语句>#运行别的......
  • Python入门进阶:68 个 Python 内置函数详解
    内置函数就是Python给你提供的,拿来直接用的函数,比如print.,input等。截止到python版本3.6.2,python一共提供了68个内置函数,具体如下abs()dict()help()min()setattr()all()dir()hex()next()slice()any()divmod()id()object()sorted()ascii()enumerate()input()......
  • laravel:返回统一格式的json
    一,参考文档https://learnku.com/docs/laravel/10.x/responses/14850二,php代码1,App\extend\result\Result.php1234567891011121314151617181920212223242526272829303132333435<?php/*   统一格式的返回json数据*/na......