0

我想从 python 脚本的标准输入中读取固定数量的字节并将其逐批输出到一个临时文件中以供进一步处理。因此,当将前 N 个字节传递给临时文件时,我希望它执行后续脚本,然后从标准输入读取接下来的 N 个字节。我不确定在 While true 之前在顶部循环中迭代什么。这是我尝试过的一个例子。

import sys
While True:
    data = sys.stdin.read(2330049) # Number of bytes I would like to read in one iteration
    if data == "":
        break
    file1=open('temp.fil','wb') #temp file
    file1.write(data)
    file1.close()
    further_processing on temp.fil (I think this can only be done after file1 is closed)
4

1 回答 1

0

两个快速建议:

  1. 你几乎不应该这样做While True
  2. Python3

您是否正在尝试从文件中读取?还是从实际标准中?(就像通过管道传输到此的脚本的输出一样?)

如果您从文件中读取,这是我认为对您有用的答案,我从底部列出的其他一些答案中拼凑而成:

with open("in-file", "rb") as in_file, open("out-file", "wb") as out_file:
    data = in_file.read(2330049)
    while byte != "":
        out_file.write(data)

如果您想从实际标准中读取,我会将其全部读取,然后按字节拆分。这行不通的唯一方法是,如果您正在尝试处理持续的流数据……我绝对不会使用标准。

和方法.encode('UTF-8').decode('hex')可能对您有用。

资料来源:https ://stackoverflow.com/a/1035360/957648 & Python,如何从文件中读取字节并保存?

于 2017-12-01T07:40:19.557 回答