小编Sab*_*ina的帖子

PycURL installation on Python 3.7.0 (Windows 10)

I'm having a problem to install PycURL on the following environment

Environment

Python 3.7.0
Windows 10 
Run Code Online (Sandbox Code Playgroud)

Problem

C:\>pip install pycurl
Collecting pycurl
  Using cached https://files.pythonhosted.org/packages/e8/e4/0dbb8735407189f00b33d84122b9be52c790c7c3b25286826f4e1bdb7bde/pycurl-7.43.0.2.tar.gz
    Complete output from command python setup.py egg_info:
    Please specify --curl-dir=/path/to/built/libcurl

    ----------------------------------------
Command "python setup.py egg_info" failed with error code 10 in C:\Users\user01\AppData\Local\Temp\pip-install-xrandomx\pycurl\

C:\>
Run Code Online (Sandbox Code Playgroud)

According to the official site ... http://pycurl.io/docs/latest/install.html#official-packages

Currently official PycURL packages are built against the following Python versions:

2.7.10
3.2.5
3.3.5
3.4.3
3.5.2
3.6.0
Run Code Online (Sandbox Code Playgroud)

Does it mean I have to uninstall current …

python pycurl winforms python-3.x

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

如何获取“ print()”,“ os.system()”和“ subprocess.run()”输出同时显示在控制台和日志文件中?

最初,我有一个简单的程序将整个输出打印到控制台。

初始代码仅在控制台中显示输出

import os, subprocess

print("1. Before")
os.system('ver')                            
subprocess.run('whoami')        
print('\n2. After')
Run Code Online (Sandbox Code Playgroud)

在控制台中输出

1. Before

Microsoft Windows [Version 10]
user01

2. After
Run Code Online (Sandbox Code Playgroud)

然后,我决定在保持控制台原始输出的同时,在日志文件(log.txt)上复制一份。

因此,这是新代码。

import os, subprocess, sys

old_stdout = sys.stdout
log_file = open("log.txt","w")
sys.stdout = log_file

print("1. Before")          # This appear in message.log only, but NOT in console
os.system('ver')            # This appear in console only, but NOT in message.log
subprocess.run('whoami')    # This appear in console only, but NOT in message.log
print('\n2. After')         # This appear in message.log only, but NOT …
Run Code Online (Sandbox Code Playgroud)

python windows subprocess file-pointer python-3.x

5
推荐指数
0
解决办法
246
查看次数

为什么不推荐使用os.system()执行Shell命令?

根据

在上一节中,我们看到了该os.system()函数的正常工作。但是不建议您执行Shell命令。我们将使用Python子进程模块执行系统命令。

作者从没os.system()在他/她的帖子中提到为什么不推荐这样做。我可以知道为什么不建议这样做吗?

是否存在任何安全漏洞os.system(),因此不建议执行Shell命令?

python

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

在Python中比较2个日期未按预期工作

我想比较2日期在Python中。但是,以下程序无法正常工作。从输出中可以看到,今天是2019-08-11。不幸的是,即使它实际上是真的,Python仍将其评估为False,对吗?

import datetime

today = datetime.date.today()
day1 = datetime.datetime(2019, 8, 11)

print(f"Today's date is {today}")

if today == day1:
    print('today is day1')
else:
    print('today is not day1')
Run Code Online (Sandbox Code Playgroud)

输出量

user@linux:~$ py compare2dates.py 
Today's date is 2019-08-11
today is not day1
user@linux:~$ 
Run Code Online (Sandbox Code Playgroud)

该代码出了什么问题,我该如何解决?

python

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

如何在C中打印EIP地址?

这是我的C程序......我试图打印ESP,EBP和EIP.

#include <stdio.h>
int main() {

    register int i asm("esp");
    printf("%#010x <= $ESP\n", i);

    int a = 1;
    int b = 2;
    char c[] = "A";
    char d[] = "B";

    printf("%p d = %s \n", &d, d);
    printf("%p c = %s \n", &c, c);
    printf("%p b = %d \n", &b, b);
    printf("%p a = %d \n", &a, a);

    register int j asm("ebp");
    printf("%#010x <= $EBP\n", j);

    //register int k asm("eip");
    //printf("%#010x <= $EIP\n", k);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我没有ESP和EBP的问题.

user@linux:~# ./memoryAddress …
Run Code Online (Sandbox Code Playgroud)

c linux memory x86 assembly

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

Python 3:`else`语句甚至执行`if`语句为真

根据之前的问题,即使IF语句执行的Else语句为TRUE,提供的建议是检查缩进.在我的代码中,缩进似乎是正确的.什么似乎是问题?

根据https://www.tutorialspoint.com/python/python_if_else.htm

else语句可以与if语句结合使用.else语句包含if语句中的条件表达式解析为0或FALSE值时执行的代码块.

根据我的理解,else如果if语句正确/为真,则不应执行.

但是,在这段代码中... else语句仍然被执行..请参阅python myCode.py -i 8.8.8.8

C:\Python>python myCode.py
No Argument Provided


C:\Python>python myCode.py -h
usage: myCode.py [-h] [-u URL] [-i IP]

optional arguments:
  -h, --help         show this help message and exit
  -u URL, --url URL  Uniform Resource Locator
  -i IP, --ip IP     IP Address


C:\Python>python myCode.py -u google.com
~ URL is google.com


C:\Python>python myCode.py -i 8.8.8.8
~ IP Address is 8.8.8.8
No Argument Provided

C:\Python>
Run Code Online (Sandbox Code Playgroud)

这是代码.

import argparse …
Run Code Online (Sandbox Code Playgroud)

python windows argparse python-3.x

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

在Windows 10上按"Ctrl + C"按钮时,屏幕上会显示Python代码.如何隐藏?

这是Windows上简单的Python代码.问题是当我按下Ctrl + C时,即使我已经使用pyinstaller将.py转换为.exe,一些代码也会显示在屏幕上

C:\code>more test.py
#!/usr/bin/python

print("\n Hello")
input(" Pause ... ")

C:\code>
Run Code Online (Sandbox Code Playgroud)

正常执行

C:\code>python test.py

 Hello
 Pause ...

C:\code>
Run Code Online (Sandbox Code Playgroud)

执行期间按Ctrl + C ...代码暂停前

C:\code>python test.py

 Hello
 Pause ... Traceback (most recent call last):
  File "test.py", line 4, in <module>
    input(" Pause ... ")
KeyboardInterrupt

C:\code>
Run Code Online (Sandbox Code Playgroud)

即使有人在代码执行期间按Ctrl + C,是否可以隐藏此代码?

python windows python-3.x

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

gdb如何简化内存地址/偏移量?

这是我的示例C代码

user@linux:~$ gdb -q hello
Reading symbols from hello...done.
(gdb) 
(gdb) list 
1   #include<stdio.h>
2   
3   int main()
4   {
5       printf("Hello World!\n");
6       return 0;
7   }
8   
Run Code Online (Sandbox Code Playgroud)

这就是汇编代码。

(gdb) disassemble main 
Dump of assembler code for function main:
   0x000000000000063a <+0>: push   %rbp
   0x000000000000063b <+1>: mov    %rsp,%rbp
   0x000000000000063e <+4>: lea    0x9f(%rip),%rdi        # 0x6e4
   0x0000000000000645 <+11>:    callq  0x510 <puts@plt>
   0x000000000000064a <+16>:    mov    $0x0,%eax
   0x000000000000064f <+21>:    pop    %rbp
   0x0000000000000650 <+22>:    retq   
End of assembler dump.
(gdb) 
Run Code Online (Sandbox Code Playgroud)

内存地址包含18个字符,其中大多数是数字0

除了显示所有数字,还可以简化它吗?

让我们 …

c assembly gdb

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

数据类型`NoneType`比较?

我正在尝试1-65535使用URL 验证URL 内的端口号(范围)urlparse.

棘手的部分是如果URL中没有端口号,urlparse(url).port则标识为NoneType

因此,我尝试根据数据类型进行简单的比较,但实际上并没有像您在本示例中看到的那样工作.

如果我NoneType用作数据类型,

elif type(u.port) == NoneType:
Run Code Online (Sandbox Code Playgroud)

我收到了错误

NameError: name 'NoneType' is not defined
Run Code Online (Sandbox Code Playgroud)

我没有使用,validators因为它无法正确验证端口号.

Python:`validators.url`不接受1-9的端口号,但接受大于65535的端口?

TCP/UDP端口号范围从1-65535开始.但是,validators无法识别端口1-9并仍然接受大于的无效端口65535.

from urllib.parse import urlparse

def test(url):
    global u
    u = urlparse(url)
    print(' Port      : ', u.port)
    print(' Data Type : u.port %s\n'% type(u.port))

for url in ['example.com', 'example.com:1', 'http://example.com:1']:
    print(url)
    test(url)
    if type(u.port) == int:
        print(' Integer')
    elif type(u.port) == None:
        print(' …
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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

为什么Python生成的ELF与原始源代码相比相当大?

我不禁想知道为什么Python生成的ELF与原始源代码相比相当大.让我们来看看最简单的代码,hello world.

user@linux:~/Python$ cat hello.py    
print('Hello, World!')
user@linux:~/Python$ 
Run Code Online (Sandbox Code Playgroud)

使用pyinstaller转换为ELF

user@linux:~/Python$ pyinstaller -F hello.py 
48 INFO: PyInstaller: 3.4
49 INFO: Python: 3.6.7
50 INFO: Platform: Linux-4.15.0-38-generic-x86_64-with-Ubuntu-18.04-bionic
50 INFO: wrote /home/user/Python/hello.spec
53 INFO: UPX is not available.
54 INFO: Extending PYTHONPATH with paths
['/home/user/Python', '/home/user/Python']
55 INFO: checking Analysis
60 INFO: Building because _python_version changed
60 INFO: Initializing module dependency graph...
62 INFO: Initializing module graph hooks...
64 INFO: Analyzing base_library.zip ...
3061 INFO: running Analysis Analysis-00.toc
3096 INFO: Caching module hooks... …
Run Code Online (Sandbox Code Playgroud)

c python

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