问题标签 [python-2.4]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
88172 浏览

python - 将标准输出从 subprocess.Popen 保存到文件,并将更多内容写入文件

我正在编写一个 python 脚本,它使用 subprocess.Popen 执行两个程序(来自编译的 C 代码),每个程序都会产生标准输出。该脚本获取该输出并将其保存到文件中。因为输出有时大到足以压倒 subprocess.PIPE,导致脚本挂起,所以我将 stdout 直接发送到日志文件。我想让我的脚本在文件的开头和结尾以及两个 subprocess.Popen 调用之间写一些东西。但是,当我查看日志文件时,我从脚本写入日志文件的所有内容都放在文件的顶部,然后是所有可执行的标准输出。如何将添加的文本交错到文件中?

日志文件有: 调用可执行文件 A 调用可执行文件 B 更多内容 [... 来自两个可执行文件的标准输出 ...]

例如,有没有办法可以在调用 Popen 后将 A 的标准输出刷新到日志中?还有一件可能相关的事情:可执行文件 A 开始然后在 B 上挂起,在 B 打印内容并完成之后,A 然后打印更多内容并完成。

我在 RHE Linux 上使用 Python 2.4。

0 投票
3 回答
20120 浏览

python - python 2.4的JSON模块?

我习惯于import json在 Python 2.6 中做,但是我现在需要为 Python 2.4 编写一些代码。是否有可用于 Python 2.4 的具有类似接口的 JSON 库?

0 投票
5 回答
23985 浏览

python - XML 传入/传出 Python 字典

我需要使用 Python 2.4.4 将 XML 与 Python 字典相互转换。我只需要节点名称和值,我不担心属性,因为我正在解析的 XML 没有任何属性。我不能使用ElementTree,因为它不适用于 2.4.4,而且由于我的工作环境,我不能使用 3rd 方库。对我来说最简单的方法是什么?有什么好的片段吗?

此外,如果没有简单的方法来做到这一点,是否有 Python 2.4.4 原生支持的其他序列化格式?

0 投票
4 回答
146575 浏览

python - 如何在 python 2.4 中安全地打开/关闭文件

我目前正在编写一个小脚本,用于我们使用 Python 的服务器之一。服务器只安装了 Python 2.4.4。

直到 2.5 出来我才开始使用 Python,所以我习惯了这种形式:

但是,在 2.5 之前没有with声明,而且我很难找到有关手动清理文件对象的正确方法的示例。

使用旧版本的 python 时,安全处理文件对象的最佳实践是什么?

0 投票
2 回答
638 浏览

python - 为什么这个 python 脚本不能处理 Win XP 中文件名中的通配符?

记住我们正在使用 Python 2-4,我应该在 Windows-XP 上进行哪些更改?

0 投票
2 回答
5911 浏览

python - python十进制/浮点数中的邪恶

我有大量的 python 代码试图处理具有 4 位小数精度的数字,并且由于多种原因我被 python 2.4 卡住了。该代码进行了非常简单的数学运算(它是一个信用管理代码,主要用于获取或添加信用)

它混合使用 float 和 Decimal(MySQLdb 为 SQL DECIMAL 类型返回 Decimal 对象)。在使用过程中出现了几个奇怪的错误之后,我发现根本原因是代码中的一些地方正在比较浮点数和小数。

我遇到过这样的情况:

现在我担心的是我可能无法在代码中捕获所有此类情况。(一个普通的程序员会继续做 x > 0 而不是 x > Decimal('0.0000') 并且很难避免)

我想出了一个补丁(灵感来自对 python 2.7 中十进制包的改进)。

我只是在一个非常早的加载库中执行此操作,它将通过允许在比较之前将浮点数转换为十进制来改变十进制包的行为(以避免遇到 python 的默认对象到对象比较)。

我专门使用“str”而不是“repr”,因为它修复了一些 float 的舍入情况。例如

现在我的问题是:我在这里遗漏了什么吗?这相当安全吗?还是我在这里打破了什么?(我认为该软件包的作者有非常充分的理由来避免如此多的浮动)

0 投票
2 回答
1227 浏览

python - 是否可以将语言环境重置为便携式语言环境?

根据 Python 文档:

“未调用的程序setlocale(LC_ALL, '')使用可移植的‘C’语言环境运行。

设置语言环境后,setlocale(LC_ALL, '')是否可以将语言环境重置回“便携”状态?我在一个库中工作,其中包含一些行为不端的组件,这些组件试图将语言环境全局重置为特定区域 - 我需要找到一种方法将语言环境恢复为可移植状态。

需要在 Windows XP 32bit 上使用 Python 2.4.4

0 投票
8 回答
776 浏览

python - 使用 python 的智能过滤器


,我需要从巨大的“必要”列表中过滤掉所有不包含符号的行,示例代码:

我有 python 2.4,所以我不能使用内置的any().
我等待这个过滤很长时间,但是有什么方法可以优化它吗?例如第 1 行和第 4 行包含“RED..”模式,如果我们发现“RED..”模式没问题,我们可以跳过在 10000 成员列表中搜索第 4 行相同的模式吗?
还有其他优化过滤的方法吗?
谢谢你。
...已编辑...
UPD:请参阅此帖子的评论中的真实示例数据。我也有兴趣按“水果”结果排序。谢谢!
...结束编辑...

0 投票
3 回答
717 浏览

python - 使用外部工具、subprocess.Popen 和线程进行多端口扫描

我正在使用端口扫描器来扫描我的子网。不幸的是,端口扫描器一次只能扫描一台主机的一个端口。此外,扫描仪对无法访问的主机有 1 秒的超时。扫描仪(作为外部程序)必须从 subprocess.Popen() 运行并加快速度 - 这样我就可以发送多个探测器,而之前的一些探测器正在等待回复 - 我使用线程。问题出现在具有大量线程的完整 /24 子网扫描中。一些实际打开的端口显示为关闭。我怀疑输出会以某种方式出现乱码。请注意,如果我一次扫描较少的主机或一台主机,则不会发生这种情况

以下代码是我尝试创建一个线程池,该线程池采用 IP 地址并为定义的端口运行“顺序”端口扫描。一旦扫描了所有指定的端口,它就会从列表中选择下一个 IP。

该片段设置线程队列的位置

在 ThreadWork 函数中,我保留了一个打开线程的选项卡(因为 thread_queue.empty 被证明是不可靠的,我不得不使用这种粗略的方式)

对 SinFpRes 的调用会为一个 IP 创建一个结果对象,并仅为该 IP 启动端口的顺序扫描。每个端口的实际扫描如图所示

然后,解析函数利用存储在 self.result 中的结果来存储该端口的输出。所有端口的聚合构成 IP 的扫描结果。

使用 10 个线程调用此代码可提供准确的 o/p(与 nmap 输出相比)。在提供 15 个线程时,偶尔会错过打开的端口。在提供 20 个线程时,会丢失更多开放端口。在提供 50 个线程时,许多端口被遗漏。

PS - 作为第一个计时器,这段代码非常复杂。向清教徒道歉。

PPS - 对于几乎没有扫描 20 个端口的整个 C 类子网,即使是线程化端口扫描也需要 15 分钟。我想知道是否应该将此代码移至另一种语言并使用 Python 仅解析结果。有人可以建议我一种语言吗?注意 - 我正在探索 S.Lott 所示的 Shell 选项,但在将其转储到文件之前需要手动处理。

0 投票
1 回答
913 浏览

python - 什么可以代替 ast 模块?

在我的项目中,我评估一个 json 数据以提取信息。代码如下:

如何将其更改为与 Python 2.4 兼容?


我的 json 样本:

{'key_64': {'size3': 'CNDCRNCDF3FY09XL7UUBCBCPTYE4H7YBG1I5MILNBW172BMHVI.png', 'id': 'CNDCRNCDF3FY09XL7UUBCBCPTYE4H7YBG1I5MILNBW172BMHVI', 'size2': '', 'size1': 'http://dev.geco.com/site/2/CNDCRNCDF3FY09XL7UUBCBCPTYE4H7YBG1I5MILNBW172BMHVI.png'}, 'key_65': {'size3': 'CNDCRNEHLW2XFFCC90PDE77EEJHJF6RC3R8PEVUACB0C34H330.png', 'id': 'CNDCRNEHLW2XFFCC90PDE77EEJHJF6RC3R8PEVUACB0C34H330' (...)