bytes

Python3 中的 str 和 bytes

女生的网名这么多〃 提交于 2020-03-15 11:29:00
与 Python2.X 不同,Python3.X 严格区分了 str 和 bytes 两种类型。文本为 Unicode,由 str 类型表示;二进制数据则由 bytes 表示。 Python3.X 不会以任意隐式的方式混用 str 和 bytes。因此使用者不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也不能将字符串传入参数为字节包的函数(反之亦然)。 例如 Python3.X 中的 socket.send() 函数,如果传入未编码的字符串,会报错: >>> client.send("test str") Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: a bytes-like object is required, not 'str' >>> client.send(b"test str") #将参数转换成 bytes 类型 8 #返回发送的数据长度 编码发展的历史 在计算机历史的早期,美国为代表的英语系国家主导了整个计算机行业,26个英文字母组成了多样的英语单词、语句、文章。因此,最早的字符编码规范是 ASCII码,一种8位(即1个字节)的编码规范 ,它可以涵盖整个英语系的编码需要。 编码是什么?编码就是把一个字符用一个二进制来表示。我们都知道

输入和输出(IO流)

荒凉一梦 提交于 2020-03-14 21:57:31
File类的常用方法: File对象的创建和部分方法使用: File file =new File("file\\我是文本.txt"); System.out.println("相对路径是:"+file.getPath()); //绝对路径 System.out.println("绝对路径是:"+file.getAbsoluteFile()); System.out.println("文件名字是:"+file.getName()); System.out.println("文件字符的长度:"+file.length()); //判断是否是文件,是返回true System.out.println(file.isFile()); File file2=new File("D:/自动创建.txt"); //创建文件时 如果文件不存在则创建文件并返回true,如果文件存在则不再创建并返回false。 boolean createNewFile = file2.createNewFile(); System.out.println(createNewFile); 输出结果: 注: 文件的绝对路径是由程序根据程序当前路径和文本相对路径拼接而成的(可见方法不够智能,需要注意) 流: ① 流是一组有序的数据序列 ② 以先进先出方式发送信息的通道 字节流是 8 位通用字节流,字符流是 16 位

Linux系统系统盘扩容

北慕城南 提交于 2020-03-14 20:22:17
  在Linux学习过程中,可能会遇到根目录存储空间不足的问题,这时候如果只是新增一块硬盘并挂载到某个目录上,还需要将数据转移至新的硬盘中才能缓解存储压力。这种操作未免有些繁琐,那可不可以 直接对跟目录进行扩容 呢?当然是可以的,接下来就给大家介绍操作步骤:    实验环境: RHEL7系统(默认已部署LVM)、VMware Workstation 12虚拟软件    第1步: 给虚拟机新增一块20GB的硬盘    第2步: 查看系统盘的分区类型,最后记得输入q不保存退出 [root@linuxprobe ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Command (m for help): p //输入p查看分区信息 Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes

Go语言入门(二)-流程控制

妖精的绣舞 提交于 2020-03-14 11:19:05
go流程控制 字符串详解 字符串原理 字符串底层就是一个byte数组,所以可以和[]byte类型互相转换 字符串中的字符是不能修改的 字符串是有byte字节组成,所以字符串的长度是byte字节的长度 rune类型(int32占四个字节)用来表示utf8字符,一个rune由一个或者多个byte组成 func stringByte() { var str string str = "abc你好" var b []byte = []byte(str) var c[]rune = []rune(str) fmt.Printf("%c\n",97) fmt.Printf("b=%v,\tlen(str)=%d\n",b,len(str)) fmt.Printf("%d\n",len(c)) } 练习 写一个程序,对英文字符串进行逆序 func reverseStr(s string) string { bytes := []byte(s) for i:=0;i<len(s)/2;i++{ //fmt.Printf("%c",i) 输出字符串 var tmp = bytes[i] bytes[i] = bytes[len(s)-i-1] bytes[len(s)-i-1] = tmp } s = string(bytes) return s } func main() { /

图片 base64转byte[]

假如想象 提交于 2020-03-13 12:09:13
/// <summary> /// 保存base64图片,返回阿里云地址 /// </summary> /// <param name="imgCode"></param> /// <returns></returns> private string SaveBase64Image(string imgCode) { string imgUrl = string.Empty; if (!string.IsNullOrEmpty(imgCode)) { Regex reg = new Regex(@"data:(image.+);base64,(.+)"); if (reg.IsMatch(imgCode)) { var matchs = reg.Match(imgCode); string contentType = matchs.Groups[1].Value; string base64Code = matchs.Groups[2].Value; string extendType = contentType.Replace("image/", ""); byte[] arr = Convert.FromBase64String(base64Code);//base64转byte[] //var picture = _pictureService.InsertPicture

golang与node.js的http对比测试

╄→尐↘猪︶ㄣ 提交于 2020-03-12 17:26:51
去年的时候,曾经简单对比了一下golang和nodejs的http模块的性能,见: golang与node.js的http对比测试 那时golang还没发布go1,http模块比nodejs差得很远。 go1出来已经有一段时间了,我知道go的http模块性能已经有比较大的提升,但是最近依然见到有人提起去年写的那篇文章,为避免产生对golang的误解,对于go1的最新测试结果如下。 测试是在Ubuntu 12.04 64位系统下进行的: qleelulu@nb:~$ uname -a Linux nb 3.2.0-25-generic #40-Ubuntu SMP Wed May 23 20:30:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux qleelulu@nb:~$ sudo dmidecode | grep CPU Socket Designation: CPU Version: Intel(R) Core(TM) i5 CPU M 480 @ 2.67GHz (注:双核4线程) go的版本: qleelulu@nb:~$ go version go version go1 nodejs的版本: qleelulu@nb:~$ node -v v0.8.6 单CPU测试 nodejs是单进程,只使用一个CPU

HBase API 之 表数据操作

喜你入骨 提交于 2020-03-10 20:18:15
前置博客(必读) HBase API之表操作 具体代码 向表中插入数据 功能代码 public static void addRowData ( String tableName , String rowKey , String columnFamily , String column , String value ) throws IOException { //创建HTable对象 Table table = conn . getTable ( TableName . valueOf ( tableName ) ) ; //向表中插入数据 Put put = new Put ( Bytes . toBytes ( rowKey ) ) ; //向Put对象中组装数据 put . addColumn ( Bytes . toBytes ( columnFamily ) , Bytes . toBytes ( column ) , Bytes . toBytes ( value ) ) ; table . put ( put ) ; table . close ( ) ; System . out . println ( "插入数据成功" ) ; } 测试代码 @Test public void addRowData ( ) throws IOException {

自定义错误界面404

你离开我真会死。 提交于 2020-03-10 04:34:43
解决IE下自定义HTTP错误页太小不显示并导致显示默认友好错误页问题 我看到了这么一句话Ticket #11289, IE bug fix: always pad the error page with enough characters such that it is greater than 512 bytes, even after gzip compression,貌似和IE什么Bug有关系,立即Google之,找到了WordPress原先的Bug处理页 《Internet Explorer, 512-byte error page fix doesn’t work. Neglects gzip compression.》 。 通过上述描述得知当自定义HTTP错误页(Custom HTTP Error Page)体积过小,小于一个临界阈值(thresholds)时,IE浏览器将自动以内部错误页面(Microsoft-stylin’ error page)来取代你的自定义错误页。 什么意思呢?首先我们要理解什么是自定义HTTP错误页。当然要理解HTTP状态码(HTTP Status Code),比如说我们找不到页面时服务器将返回一个404状态码,表示找不到页面,当我们进行301或者302重定向时也是通过这个状态码来进行,当然还要有一些附加信息,比如状态

创建swap

会有一股神秘感。 提交于 2020-03-09 22:23:39
增加一个swap分区或文件 增加分区的方式 fdisk /dev/sdb t 82 增加文件的方式 dd if=/dev/zero of=/swapfile bs=1M count=2048 ----增加一个2G的文件 /swapfile 创建分区 mkswap /dev/sdb1 | /swapfile vim /etc/fstab 磁盘增加分区的方式使用 UUID=XXXX swap swap pri=10(这是优先级 数字大 优先级高),defaults(可以用默认) 0(0不备份备份) 0(开机检查) 使用文件的方式 使用文件名 /swapfile swap swap pri=10(这是优先级 数字大 优先级高),defaults(可以用默认) 0(0不备份备份) 0(开机检查) swapon -a 挂载命令 swapon -s 查看命令 swapoff /swapfile 关闭 [root@bogon ~]$swapon -s Filename Type Size Used Priority /swapfile file 2097148 0 110 /dev/sdb1 partition 4194300 0 10 /dev/sda5 partition 2097148 0 -2 [root@bogon ~]$vim /etc/fstab [root@bogon ~]

关于Java占用内存的研究

独自空忆成欢 提交于 2020-03-08 12:35:14
这篇文章来自newsmthBBS java版原版主zms的经验总结,感觉挺不错。转到这里,以供参考。 最近对程序占用内存方面做了一些优化,取得了不错的效果,总结了一些经验 简要说一下,相信会对大家写出优质的程序有所帮助 下面的论述针对32位系统,对64位系统不适用,后叙 经常你写了一个程序,一测试,功能没问题,一看内存占用也不多,就不去考虑其它的东西了。但可能程序使用了一个什么数据结构,会当数据规模变大时,内存占用激增。 基本&&关键的问题是,Java里各种东东占多少内存????????? 对于primitive类型,有8个 byte short int long float double char boolean 它们的长度分别是 1 2 4 8 4 8 2 1 这个不罗嗦了,举例来说 long[] data=new long[1000]; 占用内存 8*1000 bytes 此外,data本身是一个Object,也占用内存若干,后叙,当然它针对 8*1000来说,忽略不计 再说Object的占用,在说这个之前,先说说引用,一惯的说法是 Java里没有指针了,只有引用,引用是安全的 这个说法没错,但是从机理上来说,引用就是指针,只是jvm对指针的使用检查和限制很多,这个引用/指针变得很安全 直接来结论:一个引用占4byte ,在32位系统上 Object obj=null; /