首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在C API中创建Python字节对象

如何在C API中创建Python字节对象
EN

Stack Overflow用户
提问于 2019-04-27 00:30:02
回答 1查看 588关注 0票数 3

我有一个bool的Numpy向量,我正在尝试使用C API来尽可能快地从中获取一个bytes对象。(理想情况下,我希望将向量的二进制值映射到字节对象。)

我可以成功地读入向量,并且我有bool_vec_arr格式的数据。我想创建一个int,并以这种方式设置它的位:

代码语言:javascript
运行
AI代码解释
复制
PyBytesObject * pbo; 
int byte = 0;
int i = 0;
while ( i < vec->dimensions[0] )  
{
    if ( bool_vec_arr[i] )
    {
        byte |= 1UL << i % 8;
    }
    i++;
    if (i % 8 == 0)
    {
        /* do something here? */
        byte = 0;
    }
}
return PyBuildValue("S", pbo); 

但是我不确定如何在pbo中使用字节的值。有人有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-04-27 00:43:56

你需要存储你刚刚完成的字节。您的问题是还没有创建一个实际的bytes对象来填充,所以就这样做吧。您知道结果必须有多长(向上舍入,是布尔向量大小的八分之一),所以使用use PyBytes_FromStringAndSize来获得一个大小正确的bytes对象,然后按顺序填充它。

您只需使用以下命令进行分配:

代码语言:javascript
运行
AI代码解释
复制
// Preallocate enough bytes
PyBytesObject *pbo = PyBytes_FromStringAndSize(NULL, (vec->dimensions[0] + 7) / 8);
// Put check for NULL here

// Extract pointer to underlying buffer
char *bytebuffer = PyBytes_AsString(pbo);

其中添加7然后除以8向上舍入,以确保有足够的字节用于所有位,然后在完成一个字节时分配给适当的索引,例如:

代码语言:javascript
运行
AI代码解释
复制
if (i % 8 == 0)
{
    bytebuffer[i / 8 - 1] = byte;  // Store completed byte to next index
    byte = 0;
}

如果最后一个字节可能不完整,你将需要决定如何处理这个问题(填充比特是出现在左边还是右边,最后一个字节是否被省略了,因此你不应该舍入分配,等等)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55876270

复制
相关文章
python高阶教程-使用email库解析发件人
本文由腾讯云+社区自动同步,原文地址 http://blogtest.stackoverflow.club/117/
羽翰尘
2019/11/21
7000
伪造任意发件人进行邮件钓鱼
前序:一般我们接收到邮件的时候,都会撇一眼发件人,看看是否是陌生人发过来的,才决定是否打开邮件与附件!
洛米唯熊
2019/07/25
4.4K0
伪造任意发件人进行邮件钓鱼
[SpringBoot实战系列]实现发送邮件API/发件人中文别名
版权声明:本文为博主原创文章,转载请注明原文作者和原文地址链接,谢谢。 https://blog.csdn.net/qqxx6661/article/details/89519353
蛮三刀酱
2019/05/10
1.9K0
[SpringBoot实战系列]实现发送邮件API/发件人中文别名
Swaks伪造邮件发件人绕过SPF
设置正确的 SPF 记录可以提高邮件系统发送外域邮件的成功率,也可以一定程度上防止别人假冒你的域名发邮件。
黑白天安全
2020/07/23
7.2K0
Swaks伪造邮件发件人绕过SPF
LeetCode 6084. 最多单词数的发件人
给你一个聊天记录,共包含 n 条信息。给你两个字符串数组 messages 和 senders ,其中 messages[i] 是 senders[i] 发出的一条 信息 。
Michael阿明
2022/05/30
3020
C#邮件发送类 简单实用 可自定义发件人名称
上图看效果 MailHelper: public class MailHelper { public bool SendMail(MailSender sender,out s
晓晨
2018/06/22
1.2K0
【java基础】javaMail发送邮件设置发件人,重点设置中文昵称
package com.ztb.common.util.email; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.JavaMailSende
用户5640963
2019/07/25
5.5K0
邮件伪造之SPF绕过的5种思路
SMTP(SimpleMail Transfer Protocol) 即简单邮件传输协议,正如名字所暗示的那样,它其实是一个非常简单的传输协议,无需身份认证,而且发件人的邮箱地址是可以由发信方任意声明的,利用这个特性可以伪造任意发件人。
Bypass
2020/05/21
7.1K0
hive 使用 map 类型字段
创建一个map类型字段 create table test3(field2 map<string,string>) row format delimited fields terminated by ',' collection items terminated by "|" map keys terminated by ":"; map keys terminated by ":"表示键值对之间用":"来分割 str_to_map 方式 同样的,先使用sql方式插入 insert into test
一个会写诗的程序员
2021/07/13
5.7K0
MongoDB-使用$type查询某个字段的类型是否为xxx
有朋友问我最近为什么都一直在更新mongodb的相关操作教程呢?因为呀,我目前的工作中需要用到呀。
小博测试成长之路
2022/12/02
1.6K0
MongoDB-使用$type查询某个字段的类型是否为xxx
快递公司接入快递100手机查快递接口实例
https://api.kuaidi100.com/document/6051a69aa52d305ab4d2a1cf.html
快递100API
2021/05/20
1.5K0
快递公司接入快递100手机查快递接口实例
快递查询接口API/插件开发使用
  快递接口/插件是电商网站和系统商用来实现查询快递功能的主要方法,就类似淘宝京东查询物流轨迹一样,嵌入到自己系统里。
用户6827397
2019/12/14
1.2K0
退换货下单接口-快递员上门取件API
(1)此功能是为买家在退货时,提供的一种省心,便捷的物流服务,当买家购买的商品在申请换货或者发起维权投诉时需要退货,不需要自己邮寄商品,由物流公司安排快递员上门取件的一项服务。 (2)下单需指定相应的快递公司编码,格式不对或则编码错误都会返回失败的信息。
老杨占线
2020/04/12
1.3K0
退换货下单接口-快递员上门取件API
Gsuite邮件发送功能中的SMTP注入漏洞分析
本文讲述了作者通过Gsuite邮件发送功能,可构造后缀为@google.com的任意发件人身份,实现SMTP注入,漏洞获得了谷歌$3133.7的奖励。
FB客服
2020/07/09
2K0
Gsuite邮件发送功能中的SMTP注入漏洞分析
Android获取短信验证码并自动填充的两种方式「建议收藏」
有些项目为了方便客户操作,减去客户输入短信验证码的时间,会要求安卓app能够获取收到的短信验证码并自动填充到输入框。所以,我整理了安卓获取短信验证码并自动填充输入框的两种方法,而且正式在项目中使用并无bug。
全栈程序员站长
2022/09/15
3.5K0
物流快递查询API接口怎么对接(中通、申通、韵达/顺丰、韵达)
快递查询API接口是使用的物流单号即可实现查询物流信息。主要应用在电商商城、ERP系统商、WMS系统商、快递柜、银行等企业。多家快递物流公司接口统一接入,建议对接接口提供商,一次性可以接入多家快递,在后期的技术维护也会省下很多工作。
用户4199839
2019/07/23
4.3K0
物流快递查询API接口怎么对接(中通、申通、韵达/顺丰、韵达)
关于钓鱼邮件的学习笔记
所以事前我们需要准备一个钓鱼网站,为了能让钓鱼网站在公网访问,还需要一个VPS,若想获得更好的伪装效果,还需要一个用于伪装的域名。VPS和域名都到手后,还可以搭建属于自己的邮服用于SMTPRelay。使用恶意附件的话,还需要准备一个恶意样本,能做免杀的话就更好了,接收shell的话,同样需要一个VPS。
FB客服
2020/03/24
2.9K0
关于钓鱼邮件的学习笔记
Uniapp、Html5plus、Native.js开发记录
Android的四大组件之一的Activity(活动):Activity是一个应用程序的组件,他在屏幕上提供了一个区域,允许用户在上面做一些交互性的操作, 比如打电话,照相,发送邮件,或者显示一个地图!Activity可以理解成一个绘制用户界面的窗口, 而这个窗口可以填满整个屏幕,也可能比屏幕小或者浮动在其他窗口的上方!
房东的狗丶
2023/02/17
3.1K0
一封伪造邮件引发的“探索”(涉及钓鱼邮件、SPF和DKIM等)
0x00. 引言 我用swaks 发送一封以我们公司CTO为显示发件人(腾讯企业邮箱)的伪造邮件给我的一个同事,邮件的内容就是让这位同事去CTO的办公司一趟,没想到这位同事真的去了,然后一脸懵逼的回来了。 恶作剧算是完了,但是这让我开始研究伪造邮件是为什么产生的,腾讯企业邮为什么没有拦截。 0x01. 关于伪造邮件的一些总结 1) 邮件服务商之间转发邮件是不需要认证的,也就是说MTA 到MTA之间转发邮件是不需要认证的,这是SMTP协议本身定义的。 所以协议钓鱼邮件就可以伪称来自某某MTA发送钓鱼邮件;
FB客服
2018/02/28
6.1K0
一封伪造邮件引发的“探索”(涉及钓鱼邮件、SPF和DKIM等)
点击加载更多

相似问题

创建自定义事件-对象发件人还是类型发件人?

10

Dynamics CRM 2016编辑查找电子邮件发件人字段

02

使用JavaScript查找发件人

11

dynamics 365更改电子邮件中的默认发件人字段

10

IBAction发件人类型

10
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档