相关疑难解决方法(0)

如何将python urandom转换为字符串?

如果我调用os.urandom(64),我会得到64个随机字节.参考将字节转换为Python字符串,我尝试过

a = os.urandom(64)
a.decode()
a.decode("utf-8")
Run Code Online (Sandbox Code Playgroud)

但得到了回溯错误,说明字节不在utf-8中.

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x8b in position 0: invalid start byte
Run Code Online (Sandbox Code Playgroud)

用字节

b'\x8bz\xaf$\xb6\x93q\xef\x94\x99$\x8c\x1eO\xeb\xed\x03O\xc6L%\xe70\xf9\xd8
\xa4\xac\x01\xe1\xb5\x0bM#\x19\xea+\x81\xdc\xcb\xed7O\xec\xf5\\}\x029\x122
\x8b\xbd\xa9\xca\xb2\x88\r+\x88\xf0\xeaE\x9c'
Run Code Online (Sandbox Code Playgroud)

是否有一种全面的方法将这些字节解码为一些字符串表示?我正在生成sudo随机令牌以跟踪多个数据库引擎中的相关文档.

python string random byte python-3.x

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

用Python阅读.tar.gz文件

我有一个25GB的文本文件.所以我把它压缩到tar.gz,它变成450 MB.现在我想从python中读取该文件并处理文本数据.对于这个我提到的问题.但在我的情况下代码不起作用.代码如下:

import tarfile
import numpy as np 

tar = tarfile.open("filename.tar.gz", "r:gz")
for member in tar.getmembers():
     f=tar.extractfile(member)
     content = f.read()
     Data = np.loadtxt(content)
Run Code Online (Sandbox Code Playgroud)

错误如下:

Traceback (most recent call last):
  File "dataExtPlot.py", line 21, in <module>
    content = f.read()
AttributeError: 'NoneType' object has no attribute 'read'
Run Code Online (Sandbox Code Playgroud)

还有,还有其他方法可以完成这项任务吗?

python gzip file tar

20
推荐指数
2
解决办法
3万
查看次数

如何删除这个特殊字符?

我在观察以下内容时试图统一文件中的行:

word1 word2
word1 word2

我不明白为什么这些行没有合并所以我在vim中打开文件并用来:set list查看是否有任何特殊字符,我发现了这个:

 word1 <feff>word2
 word1 word2
Run Code Online (Sandbox Code Playgroud)

我不确定如何在Python中清除这个单词.关于什么角色可能是什么以及如何清理它的任何建议?

python string

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

如何在使用read_sas后从pandas对象类型中的b'Text'获取Text?

我正在尝试使用pandas函数read_sas从SAS的.sas7bdat格式读取数据:

import pandas as pd
df = pd.read_sas('D:/input/houses.sas7bdat', format = 'sas7bdat')
df.head()
Run Code Online (Sandbox Code Playgroud)

我在df数据框中有两种数据类型 - float64和object.我对float64数据类型完全满意,所以我可以自由地将它转换为int,string等.问题是对象数据类型,我可以在df dataframe中看到这样包裹:

b'Text'
Run Code Online (Sandbox Code Playgroud)

或者像这样:

b'12345'
Run Code Online (Sandbox Code Playgroud)

代替

Text
Run Code Online (Sandbox Code Playgroud)

要么

12345
Run Code Online (Sandbox Code Playgroud)

我不能将它分别转换为字符串或int或"普通"对象数据类型.此外,我不能使用切片或替换技术来使用b''.所以我无法使用具有对象数据类型的列.请告诉我如何摆脱b''.

python object dataframe pandas

8
推荐指数
2
解决办法
6058
查看次数

Ping 的 Python 控制台和文本输出,包括 \n\r

我不知道发生了什么,但是当我打印到控制台或文本文件时,换行符 (\n) 不起作用,而是显示在字符串中。知道如何在控制台和文本文件中避免这种情况吗?

我的代码:

import subprocess

hosts_file = open("hosts.txt","r")
lines = hosts_file.readlines()

for line in lines:
    line = line.strip()
    ping = subprocess.Popen(["ping", "-n", "3",line],stdout = subprocess.PIPE,stderr = subprocess.PIPE)
    out, error = ping.communicate()
    out = out.strip()
    error = error.strip()
    output = open("PingResults.txt",'a')
    output.write(str(out))
    output.write(str(error))
    print(out)
    print(error)
hosts_file.close()
Run Code Online (Sandbox Code Playgroud)

输出:

b'Pinging 192.168.0.1 with 32 bytes of data:\r\nRequest timed out.\r\nRequest ti
med out.\r\nRequest timed out.\r\n\r\nPing statistics for 192.168.0.1:\r\n    Pa
ckets: Sent = 3, Received = 0, Lost = 3 (100% loss),'
b''
b'Pinging 192.168.0.2 …
Run Code Online (Sandbox Code Playgroud)

python subprocess ping popen python-3.3

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

试图从我的Numpy数组中删除b''

所以我觉得我觉得这是一个非常愚蠢的问题.

我从文件创建一个数组:

A1=np.loadtxt(file, dtype='a100')
Run Code Online (Sandbox Code Playgroud)

我想在完成对另一个文件的处理之后编写该数组:

np.savetxt("Test.txt", A1, fmt=%s, delimiter=',')
Run Code Online (Sandbox Code Playgroud)

为什么写出来的?我想我明白它是把它写成字节,但对于我的生活,我无法弄清楚如何在没有b'的情况下写出来.

我知道这可能是我非常容易忽视的东西!

python numpy python-3.x

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

Python 0xff 字节

我收到这个错误:

\n\n
UnicodeDecodeError: \'utf-8\' codec can\'t decode byte 0xff in position: 0, invalid start byte\n
Run Code Online (Sandbox Code Playgroud)\n\n

我找到了这个解决方案:

\n\n
>>> b"abcde".decode("utf-8")\n
Run Code Online (Sandbox Code Playgroud)\n\n

从这里开始: \n将字节转换为 Python 字符串

\n\n

但是,如果 a)您不\xe2\x80\x99 不知道 0xff 在哪里和/或 b)您需要解码文件对象,您如何使用它?正确的语法/格式是什么?

\n\n

我正在解析一个目录,因此我尝试一次浏览一个文件。(注意:当项目变大时,这将不起作用!!!)

\n\n
>>> i = "b\'0xff\'"\n>>> with open(\'firstfile\') as f:\n...     g=f.readlines()\n... \n>>> i in g\nFalse\n>>> 0xff in g\nFalse\n>>> \'0xff\' in g\nFalse\n>>> b\'0xff\' in g\nFalse\n\n>>> with open(\'secondfile\') as f:\n<snip - same process>\n\n>>> with open(\'thirdfile\') as f:\n...     g = f.readlines()\n... \nTraceback (most recent call last):\nFile "<stdin>", line 2, …
Run Code Online (Sandbox Code Playgroud)

python unicode byte file utf-8

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

Python 将字节连接到 str

是否可以将字节连接到 str ?

>>> b = b'this is bytes'
>>> s = 'this is string'
>>> b + s
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: can't concat str to bytes
>>> 
Run Code Online (Sandbox Code Playgroud)

基于上面的简单代码是不可能的。

我之所以问这个问题,是因为我看到了字节已连接到 str 的代码?这是代码的片段。

buf =  ""
buf += "\xdb\xd1\xd9\x74\x24\xf4\x5a\x2b\xc9\xbd\x0e\x55\xbd"

buffer = "TRUN /.:/" + "A" * 2003 + "\xcd\x73\xa3\x77" + "\x90" * 16 +  buf + "C" * (5060 - 2003 - 4 - 16 - len(buf))
Run Code Online (Sandbox Code Playgroud)

您可以在此处查看完整代码。

http://sh3llc0d3r.com/vulnserver-trun-command-buffer-overflow-exploit/

python shellcode

7
推荐指数
2
解决办法
9373
查看次数

将可能包含非 ASCII Unicode 字符的 PowerShell 输出解码为 Python 字符串

我需要将从 Python 调用的 PowerShell stdout 解码为 Python 字符串。

\n\n

我的最终目标是以字符串列表的形式获取 Windows 上网络适配器的名称。我当前的函数如下所示,并且在使用英语的 Windows 10 上运行良好:

\n\n
def get_interfaces():\n    ps = subprocess.Popen(['powershell', 'Get-NetAdapter', '|', 'select Name', '|', 'fl'], stdout = subprocess.PIPE)\n    stdout, stdin = ps.communicate(timeout = 10)\n    interfaces = []\n    for i in stdout.split(b'\\r\\n'):\n        if not i.strip():\n            continue\n        if i.find(b':')<0:\n            continue\n        name, value = [ j.strip() for j in i.split(b':') ]\n        if name == b'Name':\n            interfaces.append(value.decode('ascii')) # This fails for other users\n    return interfaces\n
Run Code Online (Sandbox Code Playgroud)\n\n

其他用户使用不同的语言,因此value.decode('ascii')其中一些用户会失败。例如,一位用户报告说更改为decode('ISO 8859-2')对他来说效果很好(因此它不是 …

windows unicode powershell subprocess python-3.x

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

将 Python 字节转换为字符串而不进行编码

我正在使用 Python 3.6 并且我有一个字节图像:

img = b'\xff\xd8\xff\xe0\x00\x10JFIF\x00'
Run Code Online (Sandbox Code Playgroud)

我需要将字节转换为字符串而不进行编码,因此它看起来像:

raw_img = '\xff\xd8\xff\xe0\x00\x10JFIF\x00'
Run Code Online (Sandbox Code Playgroud)

目标是将其合并到 html 图像标签中:

<img src="'data:image/png;base64," + base64.b64encode(raw_img) + "' />"
Run Code Online (Sandbox Code Playgroud)

python python-3.x

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