小编jwo*_*der的帖子

Python相当于perl vec()函数

我是Python的新手.在Perl中,要将特定位设置为标量变量(整数),我可以使用vec()如下.

#!/usr/bin/perl -w  
$vec = '';
vec($vec,  3, 4) = 1;  # bits 0 to 3
vec($vec,  7, 4) = 10; # bits 4 to 7
vec($vec, 11, 4) = 3;  # bits 8 to 11
vec($vec, 15, 4) = 15; # bits 12 to 15

print("vec() Has a created a string of nybbles,
in hex: ", unpack("h*", $vec), "\n");
Run Code Online (Sandbox Code Playgroud)

输出:

vec() Has a created a string of nybbles, 
      in hex: 0001000a0003000f
Run Code Online (Sandbox Code Playgroud)

我想知道如何在Python中实现相同的功能,而无需编写位操作代码并手动使用struct.pack?

python perl

5
推荐指数
1
解决办法
798
查看次数

用户定义的类上的复制模块的默认行为

copy.copycopy.deepcopy叫上一个用户定义的类的实例,不具有__copy____deepcopy__方法,这是什么Python的保证会发生什么?官方文档在这件事上显然是不明确的。函数会始终只返回原始对象的浅/深副本__dict__(或__slots__涉及对象时的等效对象)的同一类的新实例吗?CPython,PyPy等之间的行为可以不同吗?Python 2和3之间的行为是否有所不同?(忽略旧式类。)是什么使得需要定义显式__copy__/ __deepcopy__方法而不使用默认行为?

需要引用显式(而不是隐式!)权威语句。

python python-2.x language-lawyer python-3.x

5
推荐指数
1
解决办法
416
查看次数

排除使用Docker Compose启动某些容器

目前,我使用Docker Compose一次启动多个容器。我已经启动并运行了容器,但是在执行操作时docker-compose up -d,我只想排除某些容器,而使其他容器上升或下降。

docker docker-compose

5
推荐指数
2
解决办法
2439
查看次数

在 Python 中使用 ijson 更新 JSON 值

我正在处理一个非常大的 JSON 文件,我决定使用 ijson 库。

现在我想更新这个 JSON 文件中的一些值,但我不知道如何更新。

例如,来自:

{"age": 25, "gender": "M"}
Run Code Online (Sandbox Code Playgroud)

更新为:

{"age": 30, "gender": "F"}
Run Code Online (Sandbox Code Playgroud)

通过使用 ijson 库。

python json ijson

5
推荐指数
1
解决办法
642
查看次数

谁能解释这个索引的根超出范围错误?

以下代码引发了一个我无法找到解决方案的神秘错误.当我在一个更大的模块中测试它时它工作正常,所以无法理解为什么这不起作用:

import csv

with open('studentinfo.txt','a') as fo: #open the file in append mode (add to file, we don't wish to overwrite!)
        studentfileWriter=csv.writer(fo) #fo = file out (this can be called anything you like)
        id=input("Enter Student Id:")
        firstname=input("Enter firstname:")
        surname=input("Enter Surname:")
        test1=input("Enter test1 score:")
        test2=input("Enter test2 score:")
        test3=input("Enter test3 score:")
        studentfileWriter.writerow([id,firstname,surname,"Test1:"+test1,"Test2:"+test2,"Test3:"+test3])
        print("Record has been written to file")


with open("studentinfo.txt", "r") as f:
    reader = csv.reader(f)
    sorted_list = list(reader)  # turn the reader iterator into a list
    sorted_list.sort(key=lambda x: x[2])  # …
Run Code Online (Sandbox Code Playgroud)

python list range

5
推荐指数
1
解决办法
153
查看次数

模块“ pickle”没有属性“ dump”

import pickle

imelda = ('More Mayhem',
          'IMelda May',
          '2011',
          ((1, 'Pulling the Rug'),
           (2, 'Psycho'),
           (3, 'Mayhem'),
           (4, 'Kentish Town Waltz')))

with open("imelda.pickle", "wb") as pickle_file:
    pickle.dump(imelda, pickle_file)
Run Code Online (Sandbox Code Playgroud)

我正在尝试执行此代码,但控制台不断告诉我:

module 'pickle' has no attribute 'dump'
Run Code Online (Sandbox Code Playgroud)

我需要通过pip安装泡菜吗?我不确定这里发生了什么。

python pickle

5
推荐指数
2
解决办法
3216
查看次数

GitHub:我能看看我是否对fork进行了更改?

我想删除一些我画的旧叉子,但我不记得是否曾对这些叉子进行过任何修改.

如何查看是否创建了分支,或者是否对存储库的fork中的任何分支进行了任何更改?

git github

5
推荐指数
1
解决办法
59
查看次数

可以在Bash中传递文字字符*作为命令行参数吗?

使用bash脚本wtf.sh

#!/bin/bash
echo $1
echo $2
echo $3
Run Code Online (Sandbox Code Playgroud)
./wtf.sh 1 2 3 
1 
2
3

./wtf.sh * * * 



end

./wtf.sh 1 * * 
1
wtf.sh
wtf.sh 

./wtf.sh 1 "*" "*"
1
wtf.sh
wtf.sh
Run Code Online (Sandbox Code Playgroud)

我知道这*是Bash中的特殊参数,但这是否意味着不可能*将命令行中的字符作为文字字符传递?我所期待的是

./wtf.sh * * * 
* 
* 
*
Run Code Online (Sandbox Code Playgroud)

我该如何做到这一点?

parameters bash

4
推荐指数
1
解决办法
1586
查看次数

如何在一行中的套接字连接的send方法中将字符串编码为字节?

在Python 3.5中,使用套接字,我有:

message = 'HTTP/1.1 200 OK\nContent-Type: text/html\n\n'
s.send(message.encode())
Run Code Online (Sandbox Code Playgroud)

我怎么能在一行中做到这一点?我问,因为我有:

s.send('HTTP/1.1 200 OK\nContent-Type: text/html\n\n')
Run Code Online (Sandbox Code Playgroud)

但是在Python中需要3.5个字节,而不是字符串,所以这给出了错误:

builtins.TypeError: a bytes-like object is required, not 'str'
Run Code Online (Sandbox Code Playgroud)

我不应该使用发送吗?

python sockets python-3.5

3
推荐指数
1
解决办法
8405
查看次数

无法使用 Digital Ocean 创建 docker 机器

在我的 DigitalOcean 帐户上,我创建了一个 Droplet。然后我在命令行上输入

docker-machine create --driver digitalocean --digitalocean-access-token=[my_access_token] test
Run Code Online (Sandbox Code Playgroud)

(不带括号)。

但我得到的结果是

Running pre-create checks...
Creating machine...
(test) Creating SSH key...
(test) Creating Digital Ocean droplet...
Error creating machine: Error in driver during machine creation: POST https://api.digitalocean.com/v2/droplets: 422 You specified an invalid image for Droplet creation.
Run Code Online (Sandbox Code Playgroud)

我刚刚开始创建 docker 容器。我想做的就是将我的 DigitalOcean 访问令牌传递给 docker-machine,并且我已经遇到了错误,所以我不确定是什么原因导致的。

我已按照此处的说明进行操作,并进行了大量的谷歌搜索,但没有发现任何类似的问题。有人可以帮忙吗?

docker digital-ocean

3
推荐指数
1
解决办法
1422
查看次数