小编Tho*_*ind的帖子

x和(-x)在2的补语中的意义?

其中' - '表示负x,'&'表示按位AND.

这些数字在程序中是8位2的补码,我似乎无法找到输入和输出之间的相关性.

8  & (-8)  = 8
7  & (-7)  = 1
97 & (-97) = 1
Run Code Online (Sandbox Code Playgroud)

所以可能重要的是位操作?

0000 1000 & (1111 1000) = 0000 1000
0000 0111 & (1111 1001) = 0000 0001
0110 0001 & (1001 1111) = 0000 0001
Run Code Online (Sandbox Code Playgroud)

在上述每种情况下,高4位总是最终为0,但我找不到输入之间的相关性以及低4位最终的结果.

有任何想法吗?

解答: 找到最低设置位

bit-manipulation bit twos-complement bitwise-and

6
推荐指数
2
解决办法
1050
查看次数

pip 安装可编辑包产生 ModuleNotFoundError

由于导入问题,我已按照此处显示的步骤将我的 Python 项目安装为可编辑pip包。基本上这需要pip install -e .从我的项目根目录运行。项目名称为“myproject”,setup.py配置如下:

from setuptools import setup, find_packages

setup(name='myproject', version='1.0', packages=find_packages())
Run Code Online (Sandbox Code Playgroud)

项目结构是这样的:

.
??? myproject
?   ??? core
?   ?   ??? core.py
?   ?   ??? __init__.py
?   ??? tests
?       ??? __init__.py
?       ??? test_one.py
??? setup.py
??? env
    ??? ...
Run Code Online (Sandbox Code Playgroud)

随着venv启动,我得到下面的输出:

(env) [root@localhost /]$ python -V
Python 3.6.3

(env) [root@localhost /]$ pip -V
pip 9.0.1 from /myproject/venv/lib64/python3.6/site-packages (python 3.6)
Run Code Online (Sandbox Code Playgroud)

但是,在运行解释会话时,我会遇到以下情况:

(env) [root@localhost /]$ python
>>> import …
Run Code Online (Sandbox Code Playgroud)

python pip package python-3.x python-venv

6
推荐指数
1
解决办法
1741
查看次数

通过 Gitlab 合并请求向 Jenkins 传递参数

我的目标:在 Gitlab 中发出合并请求时,随时运行 Python 测试。

问题:整个回归花费的时间太长,所以我想根据配置的某个级别运行特定的测试子集。这需要我以某种方式通过 Gitlab 将“参数”传递给每个合并请求的 Jenkins。在评论中说“test/api”或类似的东西?

到目前为止,我唯一的想法是可能有一个文件与提交一起推送,Jenkins 在运行其作业时可以查看该文件。这是一种方法,但我觉得必须有更好的方法,而且我的搜索没有产生任何结果。

python jenkins gitlab

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

<bytes> 转义 <str> Python 3

目前,我有通过套接字连接接收对象的Python 2.7代码。<str>在整个代码中,我们使用<str>对象、比较等。为了转换为Python 3,我发现套接字连接现在返回<bytes>对象,这要求我们更改所有文字,就像b'abc'进行文字比较等。这是虽然Python 3中进行此更改的原因很明显,但我很好奇是否有任何更简单的解决方法。

\n\n

假设我<bytes> b'\\xf2a27'通过套接字连接接收。有没有一种简单的方法可以将它们转换<bytes>为在Python 3.6<str>中具有相同转义的对象?我自己研究了一些解决方案但无济于事。

\n\n
a = b'\\xf2a27'.decode('utf-8', errors='backslashescape')\n
Run Code Online (Sandbox Code Playgroud)\n\n

上面的结果'\\\\xf2a27'是 withlen(a) = 7而不是原来的len(b'\\xf2a27') = 3. 索引也是错误的,这行不通,但看起来它正走在正确的道路上。

\n\n
a = b'\\xf2a27'.decode('latin1')\n
Run Code Online (Sandbox Code Playgroud)\n\n

上面的结果'\xc3\xb2a27'包含我想避免的 Unicode 字符。虽然在这种情况下len(a) = 5,比较就像a[0] == '\\xf2'工作,但如果可能的话,我想在表示中保留信息转义。

\n\n

我是否缺少更优雅的解决方案?

\n

python string unicode python-2.7 python-3.x

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

Fedora 容器没有可用的“查找”命令

我构建了一个容器:

> cat Dockerfile
FROM fedora:latest

USER root

RUN dnf update -y && \
    dnf clean all && \
    dnf autoremove

> docker build -t dev .
> docker run -t -d <container_id>
> docker exec -it <container_id> /bin/bash
$ dnf install -y which
$ which find
which: no find in (/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin)

Run Code Online (Sandbox Code Playgroud)

到目前为止,我使用过的每个 Linux 发行版都已find预安装,因此我不完全确定在这里要做什么。

快速谷歌搜索会产生有关如何使用的 find结果,或者为什么在脚本中使用时找不到它bash等。但无论我使用什么关键字,我似乎都找不到以前遇到过这个问题的人。

dnf search find显示没有结果,但也许它是用另一个名字?或者我必须自己编译一些东西?

bash containers fedora find dnf

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

奇怪的1264超出范围错误

在MySQL中运行一组插入语句时,我一直在获取Error Code: 1264. Out of range value for column 'x' at row 1。列类型设置为,float(10, 10)并且列范围内的值都在范围23.912 to 26.458之内。我完全不知道为什么会收到此错误。

mysql mysql-error-1264

2
推荐指数
1
解决办法
278
查看次数

CSV 文件到 SQL 插入语句

我有一个 CSV 文件,看起来像这样:

Date,Person,Time Out,Time Back,Restaurant,Calories,Delicious?
6/20/2016,August,11:58,12:45,Black Bear,850,Y
6/20/2016,Marcellus,12:00,12:30,Brought Lunch,,Y
6/20/2016,Jessica,11:30,12:30,Wendy's,815,N
6/21/2016,August,12:05,1:01,Brought Lunch,,Y
Run Code Online (Sandbox Code Playgroud)

到目前为止,我已经成功地将每一行打印到字符串列表中(例如 - ['Date', 'Person', 'Time Out', etc.] or ['6/20/2016', 'August', '11:58' etc.])。

现在我还需要做两件事:

  1. 向每行添加 ID 标题和连续数字字符串(例如 - ['ID', 'Date', 'Person', etc.] and ['1', '6/20/2016', 'August', etc.]
  2. 分隔每一行,以便可以将它们格式化为插入语句,而不是让程序逐行打印出每一行(例如 - INSERT INTO Table ['ID', 'Date', 'Person', etc.] VALUES ['1', '6/20/2016', 'August', etc.]

这是让我到目前为止的代码:

import csv

openFile = open('test.csv', 'r')
csvFile = csv.reader(openFile)
for row in csvFile:
    print (row)
openFile.close()
Run Code Online (Sandbox Code Playgroud)

python mysql csv python-3.x sql-insert

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

EXECUTE IMMEDIATE SELECT INTO语句中缺少关键字 - Oracle PL/SQL

下面的查询是我试图运行的PL/SQL的简化版本,它只显示了一般结构.简而言之,我试图从SPECIAL_TABLE变量中提取信息c, d.

DECLARE
  c NUMBER;
  d NUMBER;
BEGIN
  FOR all_tab IN
  (SELECT * FROM all_tables)
  LOOP
    BEGIN
      EXECUTE IMMEDIATE 'SELECT a, d INTO c, d
      FROM ' || :name || '.SPECIAL_TABLE WHERE name = '''
      :name || ''' AND table_name = ''' || all_tab.table_name || ''';

    ...

    EXCEPTION
      WHEN OTHERS THEN
        DBMS_OUTPUT.PUT_LINE('ERROR OCCURRED');
    END;
END;
Run Code Online (Sandbox Code Playgroud)

上面的查询不起作用(通过上面的查询我的意思是EXECUTE IMMEDIATE),而Oracle声明905 missing keyword.据我所知,遵循这里的流程.注意,'''这样我可以'SELECT语句转义单个,然后一起完成整个字符串.有什么奇怪的,我可以按照下面的代码进行操作,没有错误:

DECLARE
  c NUMBER;
  d NUMBER; …
Run Code Online (Sandbox Code Playgroud)

sql oracle plsql dynamic-sql oracle11g

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

用'0'替换列表中的''值

我有一些.csv文件包含NULL在表中被视为空的值.例如:

ID   Volts   Current   Watts
0    383               0
1    383     1         383
2    382     2         764
Run Code Online (Sandbox Code Playgroud)

.csv文件输入到我的程序中并转换为如下列表:

with open(inputPath + file) as inFile:
    csvFile = csv.reader(inFile)
    for row in csvFile:
        removeNull(row)
        print(row)
Run Code Online (Sandbox Code Playgroud)

它基本上将每一行放入csvFile并将其转换为值列表,如下所示:

['0', '383', '', '0'],['1', '383', '1', '383]等等.

请注意,这些NULL值现在只是空字符串''.

然后关于上面程序的snipet removeNull()定义为:

def removeNull(row):
    nullIndex = row.index('')
    row.remove('')
    newRow = row.insert(nullIndex, '0')
    return newRow
Run Code Online (Sandbox Code Playgroud)

通过列表(aka行)查找空字符串'',并将其索引记录为nullIndex.然后删除所述索引处的空字符串,将其替换为'0'并返回编辑后的列表.

问题:我的 …

python csv string null

0
推荐指数
1
解决办法
1696
查看次数