女朋友会 Python 是多么可怕的一件事!

如和用python给女朋友做个专属她的软件 在学习python的路上如果觉得枯燥就可以想我一样做一些有趣的事情就不会无聊了 python是一门及其有趣的语言。 人们都喜欢记住一些重要的日子,比如说跟女朋友认识的日子,结婚纪念日、周年纪念日等等。 人们都喜欢下个软件来计算而我偏偏喜欢自己写个, 接下来我将介绍如何设计这个软件以及如何打包成exe文件给女朋友直接运行。 接下来我们会用到 datetime 模块和 time 模块用来获取时间以及... 阅读详情

阅读文本大概需要 8 分钟。

1

目 标 场 景

女朋友会 Python 是多么可怕的一件事!

上篇文章发布之后,一位朋友告诉忽略了一件事,假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发过来的图片包含的地理位置是否真实,要打一个 Big Big 的问号了?

实际上,利用 Python 是可以非常方便地修改一张图片的地理位置。

2

编 写 代 码

在编写脚本之前,需要在虚拟环境下安装依赖库:piexif

第一步,我们读取原图的经度和纬度,然后将地理位置格式化为浮点类型。

拿到 GPS 图片坐标之后,需要转为火星坐标系数据。

def read_image(self, image_path):
    """
    开始处理图片
    exifread:读取图片属性
    :return:
    """
    exif_dict = piexif.load(image_path)

    if exif_dict['GPS']:

         # 纬度
         gps_lati_pre = exif_dict['GPS'][2]

         gps_lati = dms_to_gps(gps_lati_pre)

         # 经度
         gps_long_pre = exif_dict['GPS'][4]
         gps_long = dms_to_gps(gps_long_pre)

         # GPS坐标转为高德坐标
         lng, lat = wgs84togcj02(gps_long, gps_lati)

         print(f"原图地理位置如下\n经度:{lng}\n纬度:{lat}\n")

         return f'{lng}, {lat}'
    else:
         print(f'抱歉!这张图片不包含地理位置!')

第二步,利用高德 Web 服务 API 中的 逆地理编码 解析出原图的详细位置。

def get_address_by_location(self, location):
    """
    通过经纬度拿到地理位置
    :param location:
    :return:
    """
    params = {
       'key': self.ak,
        'location': location,
        'sig': self.sign
    }

    resp = json.loads(requests.get(url=self.url_regeo, params=params).text)

    if resp and resp.get('regeocode') and resp.get('regeocode').get('formatted_address'):
         address = resp.get('regeocode').get('formatted_address')
         print(f'原图的拍摄地址为:{address}\n')
    else:
         print('api解析地址出错,请检查ak!\n')

第三步,寻找一个要定位的地理位置。

首先,输入目标城市和具体地址,利用高德 Web 服务 API 中的地理编码拿到要定位的地理位置。

def get_location_by_address(self, city, address):
    """
    通过地理位置到拿到经纬度
    地理编码:https://lbs.amap.com/api/webservice/guide/api/georegeo/
    :param address:
    :return:
    """
    params = {
            'key': self.ak,
            'city': city,
            'address': address,
            'sig': self.sign
    }

    resp = json.loads(requests.get(url=self.url_geo, params=params).text)

    # 获取坐标地址
    if resp and len(resp.get('geocodes')) >= 1 and resp.get('geocodes')[0].get('location'):
         location = resp.get('geocodes')[0].get('location')
         gps_data = location.split(',')

         # 得到经度和纬度
         gps_long = float(gps_data[0])
         gps_lati = float(gps_data[1])

         return gps_long, gps_lati
    else:
         print('api解析地址出错,请检查ak!')
         return None

第四步,修改图片的地理位置。

由于 piexif 中经、纬度数据都是元组类型,因此需要将要设置的数据进行一次处理。

def gps_to_dms(gps_data):
    """
    坐标转为度、分、秒(double)
    116.397451
    http://www.gzhatu.com/du2dfm.html
    :param gps_data:
    :return:{1: b'N', 2: ((22, 1), (32, 1), (945, 100)), 3: b'E', 4: ((114, 1), (1, 1), (3445, 100))
    """
    # 度:向下取整
    gps_degree = math.floor(gps_data)

    gps_data_temp1 = (gps_data - gps_degree) * 60

    # 分
    gps_minute = math.floor(gps_data_temp1)

    gps_data_temp2 = gps_data_temp1 - gps_minute

    # 秒,取小数点后4位
    gps_second = round(gps_data_temp2 * 60, 2)

    # 注意:秒必须转换为整形
    result = ((gps_degree, 1), (gps_minute, 1), (int(gps_second * 100), 100))

    return result

最后,将正确格式的经纬度数据写入到图片中去。

def write_image(self, image_path, gps_long, gps_lati):
    """
    修改文件夹下所有文件的属性
    :param image_path: 文件夹路径
    :return:
    """
    # 读取图片
    img = Image.open(image_path)

    try:
        exif_dict = piexif.load(img.info['exif'])
    except:
        print('加载文件地理位置异常!')
        return

    # 修改地理位置
    # GPS GPSLatitudeRef:N
    # GPS GPSLatitude:[22, 32, 189/20]
    # GPS GPSLongitudeRef:E
    # GPS GPSLongitude:[114, 1, 689/20]
    exif_dict['GPS'][2] = gps_to_dms(gps_lati)
    exif_dict['GPS'][4] = gps_to_dms(gps_long)

    exif_bytes = piexif.dump(exif_dict)

    # 写入到新的图片中去
    img.save(image_path, 'jpeg', exif=exif_bytes)

3

结 果 结 论

通过上面的 4 步操作,能将任意地理位置写入到图片中。

除了地理位置,图片的元数据,包含:拍摄器材、拍摄时间、拍摄参数都能进行二次修改。

我已经将全部源码上传到后台,关注公众号后回复「 行踪 」即可获得下载链接。

更多有趣有用文章

PyCharm 2019.3发布,增加了哪些新功能呢?

关于转行|10多年的老司机,给你的几点忠告

当心啊!仅仅50行Python,就可以在手机端看小姐姐的电脑桌面!

自动编写Python程序的神器,Python 之父都发声力挺!

怎样用Python讨您的女朋友欢心(附源码) 送给有女朋友的童鞋们,你们过得怎么样?给女朋友送礼物纠结吗?哈哈哈,今天写一篇文章教你每天给她暖心的问候! 本来是打算通过微信发问候的,但是好像微信的网页接口停止使用了,itchat模块无法使用,所以智能用邮件代替了。 API的合作 干活不累 天气API 你可关于获取天气,我们已经学过了,今天就直接复制,然后稍作修改 每日一句 这个接口是金山词霸提供的接口, 不仅可以听一首音乐... 阅读详情

相关推荐

如何用Python找到女朋友!

有时候女朋友一个人在外面玩耍,问她在哪个地方,就是不告诉我。但是,你又很想知道女朋友的「位置」,这该如何是好? 其实你可以这样套路女朋友,假装自己在家很无聊,可以帮她修图,让她微信发原图给你,拿到「微信原图」后,你就可以利用 Python 快速获取到女友的具体位置了。 准 备 工 作 首先,在虚拟环境中安装识别图片元数据的库。 pip3installexifread 然后,进入高德开放平台,申请一个 Web 服务的应用,获取到一个 「Key」用于逆地理编码 API。 ...

web1299的博客 2135

Piexif 技术文档

Piexif 是一个纯粹用 Python 编写的库,专门用于简化 Python 中的 EXIF 数据操作。无论是读取、写入还是移除 EXIF,它都能在任何支持 Python 的平台上运行,得益于它的纯 Python 实现。本文档旨在引导您了解 Piexif 的安装步骤、基本使用方法、API 接口指导以及如何集成到您的项目中。 ## 安装指南 ### 使用 `easy_install` 如果您...

gitblog_01209的博客 1240

python之微信自动给女朋友发消息脚本

以前都在敲代码,敲代码,敲代码。根本没有记录的习惯,现在深刻的认识到每次记录自己平时遇到的问题,以后找起来有多方便。所以,以后一定养成多写博客的习惯。随便多贴一点以前写的一些好玩的脚本~~隔。 犹豫这都是以前写的,代码有点捞,别喷,要脸,话不多说,直接上代码 from __future__ import unicode_literals from threading import Timer fr...

星空/\的博客 2538

女朋友背着我,用 Python 偷偷隐藏了她的行踪

点击上方“AirPython”,选择“置顶公众号”第一时间获取 Python 技术干货!1目 标 场 景女朋友会 Python 是多么可怕的一件事!假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发过来的图片包含的地理位置是否真实,要打一个 Big Big 的问号了?实际上,利用 Python 是可以非常方便地修改一张图片的地理位置。2编 写 代 码在编写脚本之前,需要在虚...

AirPython的博客 492

用python监控女朋友的网站看你女朋友每天都在看一些什么东西

需求 (1)你要有个女朋友(没有也行问题不大) (2)获取你女朋友chrome前一天浏览记录中的所有网站路径和访问时间,把它保存到一个txt中 (3)将这个txt文件发送给指定的邮箱(你的邮箱,或者我的邮箱,发给我我也不介意) (4)建立例行任务,每天定时自动完成这些操作,你就可以通过邮件查看你女朋友每天看了写什么网站。 背景 (1)mac下chrome的浏览记录在哪?怎么获取网址(url)和访问时间? 路径:/Users/用户名/Library/Application\ Support/Google/Ch

pythonxiaopeng的博客 1216

【python实战】还是单身?教你如何用python追到女朋友

文中自有颜如玉

公号:一条coding 1万+

tkinter 之 写入照片exif信息

exif tkinter pyinstallerexiv2.dll

周六放风筝的专栏 689

piexifjs:在客户端或服务器端 JavaScript 中读取和修改 exif

小精灵 读取并修改exif。 在 JS(客户端和 Node.js)中修改 exif 的库。 注意和警告! 我们正在实施 v2.0。 这个版本将包括一些大的变化。 如果您不准备使用,请不要更新此库。 ` npm install piexifjs@1.0.4 ` 感谢您使用piexifjs! 如何使用 var exifObj = piexif.load(jpegData) - 获取 exif 数据作为对象。 jpegData必须是一个字符串,与“数据:图像/ JPEG; BASE64,”开始(DataURL), “\ XFF \ XD8”或“的Exif”。 var exifStr = piexif.dump(exifObj) - 将 exif 作为字符串插入到 JPEG 中。 piexif.insert(exifStr, jpegData) - 将 exif 插入 JPEG。 如

开源项目Piexif深度指南及问题解决方案

**Piexif** 是一个专用于Exif元数据操作的纯Python库。它使得开发者能够便捷地读取、写入、删除以及移植JPEG和WebP图像中的Exif信息。此项目由hMatoba维护,并在MIT许可证下开源发布。适合需要处理图片元数据的各种应用场景,无论是简单的个人项目还是复杂的商业应用都能得心应手。Piexif适用于Python 2.7至3.5及以上版本,兼容PyPy3,具备跨平台特性,甚至能...

gitblog_01246的博客 839

vins-fusion环境配置、安装与测试

本文主要介绍如何搭建vins-fusion的运行环境,以及解决vins-fusion编译运行时遇到的环境冲突问题,并在此基础上实现例程的运行。

qq_52068373的博客 1万+

DESeq2实战:利用LRT检验解析时间序列基因表达动态变化

本文详细介绍了如何使用DESeq2中的LRT检验分析时间序列基因表达数据,揭示基因表达动态变化模式。通过构建完整模型与简化模型比较,LRT检验能有效识别处理效应随时间变化的基因,适用于发育过程、疾病进展等研究。文章提供了从数据准备、模型构建到结果可视化的完整实战指南,并分享了高级技巧与常见问题排查方法。

weixin_29062671的博客 439

python读取与保存图片的exif信息

图片的exif文件格式中保存了很多信息,比如GPS经纬度,高度,焦距等信息。 在图片的属性中可以看到这些信息: 我们可以使用python来进行exif数据的读取和保存。 1. 首先安装piexif pip3 install piexif 2.exif数据读取代码 import piexif from PIL import Image # Read Image fname = './1.JPG' img = Image.open(fname) exif_dict = piexif.loa

Jeff_zjf的博客 1万+

Scratch离线版部署指南:解决资源缺失与页面显示异常问题

本文提供了一份详尽的Scratch离线版部署指南,旨在解决网络依赖导致的资源缺失与页面显示异常问题。通过从基础文件获取、自动化资源抓取到生产环境部署的完整流程,帮助教育工作者和开发者在无网络环境下搭建功能完整的本地Scratch编辑器,确保编程教学的顺利进行。

wine的专栏 1263

gps python获取图片坐标_女朋友会 Python 是多么可怕的一件事!

阅读文本大概需要 8 分钟。1目 标 场 景女朋友会 Python 是多么可怕的一件事!上篇文章发布之后,一位朋友告诉忽略了一件事,假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发过来的图片包含的地理位置是否真实,要打一个 Big Big 的问号了?实际上,利用 Python 是可以非常方便地修改一张图片的地理位置。2编 写 代 码在编写脚本之前,需要在虚拟环境...

weixin_34073886的博客 199

从零到一:KUKA机械臂与ROS的工业级通讯协议深度解析

本文深度解析KUKA机械臂与ROS的工业级通讯协议,重点对比EKI与RSI两种核心接口的技术特点与应用场景。详细介绍了网络架构设计、数据包解析机制及ROS-I集成方法,并提供实时性能优化与故障排除策略,为工程师实现高可靠性工业自动化集成提供完整解决方案。

2a4s6d8f0g的博客 296

Android 跨进程通信-(一)Binder概念引入

前言 主要对Android中的跨进程通信进行总结下,这篇先梳理下里面的涉及的一些概念 一 多进程 1.进程与线程 进程:系统中正在运行的一个应用程序,某个程序一旦运行就是一个进程,是资源分配的最小单位; 线程:程序执行的最小单位,包含在进程中,一个进程可以包含多个线程。 2.Android应用中的多进程 (1)dalivk虚拟机 Android系统的底层任务管理以及驱动都是基于Linux系统。一个Android系统其实就是一个Linux系统,通过adb shell进入连接的手机,就可以看到Li

nihaomabmt的专栏 1103

url通过后台会变成问号字符集_女朋友会Python是多么可怕的一件事!

1、目 标 场 景一位朋友告诉忽略了一件事,假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发过来的图片包含的地理位置是否真实,要打一个 Big Big 的问号了? 实际上,利用 Python 是可以非常方便地修改一张图片的地理位置。另外这里要注意:不管你是刚学Python还是想找python高薪工作,记住:项目开发经验永远是核心,如果你没有python入门到高级实战视频教...

weixin_39607423的博客 82

CLASSB类移植(满足IEC 60730-1和60355-1标准)

针对软件认证需要满足IEC 60730-1和60335-1标准,ST公司专门提供的软件扩展包X-CUBE-CLASSB,它包含自测库和文档,支持多种STM32系列芯片,通过预集成测试库和标准化流程,帮助开发者快速满足国际安全标准,适用于家电、工业控制等高可靠性场景。ClassB软件包程序检测内容分为两个主要部分:启动时的自检和运行时的周期自检,MCU在上电的时候会进行复位启动,在启动完成以后会进行运行自检。

m0_61973119的博客 1402

url传值是否会出错 xmlhttprequest_女朋友会 Python 是多么可怕的一件事

​1目 标 场 景女朋友会 Python 是多么可怕的一件事!一位朋友告诉忽略了一件事,假设女朋友会 Python 的话,那岂不是要翻车?如果是这样的话,女朋友发过来的图片包含的地理位置是否真实,要打一个 Big Big 的问号了?实际上,利用 Python 是可以非常方便地修改一张图片的地理位置。2编 写 代 码在编写脚本之前,需要在虚拟环境下安装依赖库:piexif第一步,我们读取原图的经度和...

weixin_39545310的博客 100

让 ME51N 在采购信息记录过期时不要带出上一次采购订单的价格

在采购信息记录(PIR)价格条件无效或过期时,到上一次采购订单价格进行提议;你可以通过关闭,并在把PO price设置为不采纳,再辅以把过期的价格来源直接拦截为错误。若仍需 100% 阻断,可用在保存前清空估价价格作为技术兜底。标准行为与配置证据见文内引用。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 660

企业AI选型大揭秘:扣子(Coze) Bot与微信对话开放平台深度剖析

本文对比分析了字节跳动的扣子(Coze)Bot和腾讯的微信对话开放平台两款AI聊天机器人解决方案。扣子(Coze)Bot凭借强大的大模型支持、丰富的插件生态、低代码开发及多平台部署能力,在功能丰富度和灵活性方面表现突出,适合技术实力强、业务场景复杂的企业。微信对话开放平台则依托微信生态优势,在客户服务和营销推广场景中更具优势,其零门槛接入方式更适合技术能力较弱的企业。企业在选型时应综合考虑规模、预算、业务场景和技术能力等因素,选择最适合的AI解决方案,以充分发挥AI技术价值,提升企业竞争力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 434

python程序员怎么给女朋友准备礼物

先来展示一下效果图: 不知道大家给女朋友的备注是什么?下面看看我的备注。 这是我给女朋友的备注: 再来看看给女朋友一个发射爱心的图片,这个叫“既许一人以偏爱,愿尽余生之慷慨”, 看完了发射爱心,接下来我们来一个更加高级的操作,不好,被丘比特的箭射中了,只能余生“我陪你闹,你陪我笑!” 当然作为程序员,这些效果图不可能是画出来的,进入正题,我们用的是python代码写出来的,下面先附上源代码: import turtle import time # 实现清屏 def clear_screen():

qq_44176343的博客 4846

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

七夕来了,你还没有女朋友?Python 追女生神器!每天坚持给她发早安

每天坚持给她发早安!在七夕如何能让女朋友高兴一天呢?当然是在早上给她发一句早安啦!但你能保证你可以在周六早早地起床吗?

张大帅哥的博客 1563

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

七夕快到了,用python给女朋友画张素描吧

一、先看效果: 二、安装python3.92,pycharm编辑器 PyCharm 是一款功能强大的 Python 编辑器,具有跨平台性,鉴于目前最新版 PyCharm 使用教程较少,为了节约时间,来介绍一下 PyCharm 在 Windows下是如何安装的。 这是 PyCharm 的下载地址:http://www.jetbrains.com/pycharm/download/#section=windows 进入该网站后,我们会看到如下界面: professional 表示专业.

biyesheji1000的专栏 5万+

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

❤️ 跟我一起用python追到女朋友!❤️

  时间过得真快,昨年520写了一个表白代码 点击此处 哈哈哈 ,现在看来还蛮好看的!哈哈哈,我专业帮人追女朋友,心想两玩得超好的同学,都是我帮忙追的哈哈哈,要是有粉丝需要我帮忙出谋划策,尽管私聊我哈哈哈。在逛Youtube的时候偶尔看到了相关的学习视频,于是自己也动手敲了哈哈! ...

宝藏女孩的成长日记 2万+

520到了,用Python给女朋友比心表白

每到各种节日,不少小伙伴们都会遇到这样一个世纪问题——怎么给女朋友/老婆一个与众不同的节日惊喜。这不马上就又要到520了嘛,我们可以尝试用python给女朋友比心表白!就像下面这这样???...

涛哥聊Python 1973
上一篇: 还在担心双十二涨价,Python做一个天猫商品价格监督器
下一篇: Python操作Excel 模块,你猜哪家强?
菜鸟学Python
博客等级 码龄9年 8063粉丝 571原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值