首页 > 编程语言 >使用python将txt文件中的ip地址转换成当地城市名称

使用python将txt文件中的ip地址转换成当地城市名称

时间:2023-10-13 21:55:41浏览次数:49  
标签:city python ip content 地址 file txt

具体代码

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('result.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('result3.txt', 'w') as file:
    file.write(content)

就能将ip地址转换成拼音格式啦(不是中文哈~)!!!

标签:city,python,ip,content,地址,file,txt
From: https://www.cnblogs.com/liuzijin/p/17762972.html

相关文章

  • python 中序列ID从fasta文件中批量提取序列数据
     001、[root@pc1test1]#lsa.fachr.listtest.py[root@pc1test1]#cata.fa##测试fasta文件>chr1tttcccggg>chr2tttgggccc>chr3cccttt>chr4aaaaattt[root@pc1test1]#catchr.list##序列IDchr2chr4 [root@pc1......
  • eclipse 相关
    eclipse相关配置tomcat先右键newserver,然后添加合适的tomcatnext找到本地下载的tomcat的所在即可(初次才有,此处用8.0举例看)双击下方的Tomcat选择项目放到tomcat路径下File——Newother——选择如下动态web项目(准备好了WebContent......
  • 在JavaScript中如何检查数组是否包含某个值?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中如何检查数组是否包含某个值?在JavaScript中,最简洁、高效的方法来检查数组是否包含某个值是什么?这是我所知的唯一方法:functioncontains(a,obj){for(vari=0;i<a.length;i++){if(a[i]===obj)......
  • 在JavaScript中,如何获取时间戳?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何获取时间戳?我想要一个单独的数字,代表当前的日期和时间,就像Unix时间戳一样。毫秒级时间戳要获取自Unix纪元以来的毫秒数,调用Date.now:Date.now()或者使用一元运算符+来调用Date.prototype.valueOf:+newDate......
  • ESP32-MicroPython 开发环境
    Linux/Mac下使用MicroPython开发ESP32刷入固件使用esptool.py将MicroPython刷入ESP32开发板涉及几个步骤。1.安装esptool如果你还没有安装esptool.py,你可以使用pip来安装它:pipinstallesptool2.下载MicroPython固件MicroPython-Pythonformicrocontrol......
  • 如何在ActionScript 3中将"Null"(一个真实的姓氏!)传递给SOAP Web服务
    内容来自DOC[https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务](https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务)我们有一位员工的姓氏是“Null”。当使用该姓氏作为搜索条件时,我们的员......
  • 使用python对txt文件的日期格式进行清洗
    我使用的Java对文件日期进行清洗,看到友友用的python清洗,就问了问应该如何做,代码是能看懂,但是若是要求我自己一步一步写的话,应该不太行~具体代码importrefromdatetimeimportdatetime#读取文件withopen('result3.txt','r')asfile:data=file.read()#使用正......
  • P1967 [NOIP2013 提高组] 货车运输 (生成树,LCA)
    P1967[NOIP2013提高组]货车运输https://www.luogu.com.cn/problem/P1967首先有些边是没用的(比较小的边),比如两个点之间的两条(并行的)路,只有较大的会被走到,小的不会被走,因此可以直接去除小的边,即求最大生成树。接着做求任意两点经过的边的最小值就演变成求树上任意两点的最小树......
  • Linux开发环境中使用shell/python脚本快速自动打包并查看apk文件
    最近工作中突然遇到一个很烦人的问题,事情的起因是这样的.我参与开发/维护着大概5个项目,负责服务端后台的同事经常在自己的本地电脑启着本地服务测试一些东西,而他们的本地局域网IP是经常变动的,那么问题来了,只要他们的IP地址变动了就会过来找我针对某个局域网IP地址为某个......
  • 【学习】Eclipse官方Zest的两个例子(一)
    原文的链接:http://wiki.eclipse.org/index.php/GEF_Zest_Visualization#Layout_Algorithms 感觉不错的有这么几点:代码很少;居然开始打开有动态效果;三个GraphNode点都是可以用鼠标动态调整位置的;三个GraphNode点和三个GraphConnection都可以选中,而且选中变色;三个GraphNode点都有Tool......