我正在创建一个Python程序,我需要一些帮助.我正在创建的程序就是这样工作的.

用户从文件中输入原始的二进制输入0‘S和1’S.然后,我必须能够以特定的方式读取这些数据.我想分别读取每行(180位二进制数,包含多行),并跳过每行的前30个二进制数和后30个二进制数.然后,我将存储收集的数据(每行),缺少第一位和最后30位数字.这将以.txt文件的形式输出给用户.我知道如何读取和写入文件,但我不知道如何保存或写入我只感兴趣的数据.

这就是我到目前为止所拥有的,以便用户可以输入他们的文件:

filename = input("What is the name of your file:")
fi = open(filename, "r")

这不是很多,但同样,我缺乏解释数据的知识.

下面是一个简短的例子(忽略前3位和后3位):

假设文件binary.txt包含以下内容:

000111000111000111
111000111000111000

浏览我的程序,输出或新保存的文件将包含:

111000111000
000111000111

我还没有找到一种方法来解释我需要的二进制数据,所以我没有try 任何解决方案.将每一行二进制代码转换为列表可能有助于确定我想要提取的数据的位置.这是做这件事的正确方式吗?这能实现吗?

推荐答案

该代码定义了函数process_binary_line.函数的作用是判断每一行是否有180个字符.如果不是,则引发ValueError,main循环捕获该错误,打印一条错误消息,并继续处理下一行.

函数main负责读取输入文件、处理每一行并将结果写入输出文件.

将此代码保存到一个Python文件(例如,process_binary.py)并运行它.它将提示您输入文件,按指定的方式处理数据,并将结果保存到processed_output.txt.

这是代码,请根据您的需要进行更改.

def process_binary_line(line):
    if len(line) == 180:
        return line[30:-30]
    else:
        raise ValueError("Each line should be 180 characters long.")

def main():
    filename = input("What is the name of your file: ")

    try:
        with open(filename, "r") as file:
            lines = file.readlines()

        processed_lines = []

        for line_number, line in enumerate(lines, start=1):
            try:
                processed_line = process_binary_line(line.strip())
                processed_lines.append(processed_line)
            except ValueError as e:
                print(f"Error in line {line_number}: {e}")
                continue

        output_filename = "processed_output.txt"

        with open(output_filename, "w") as output_file:
            for processed_line in processed_lines:
                output_file.write(processed_line + "\n")

        print(f"Processed data saved to {output_filename}")

    except FileNotFoundError:
        print(f"Error: File '{filename}' not found.")

if __name__ == "__main__":
    main()

Python相关问答推荐

跳过包含某些键的字典

将每个关键字值对转换为pyspark中的Intramame列

将两个收件箱相连导致索引的列标题消失

重命名变量并使用载体中的字符串存储 Select 该变量

调试回归无法解决我的问题

是否有方法将现有的X-Y图转换为X-Y-Y1图(以重新填充)?

Pandas read_jsonfuture 警告:解析字符串时,to_datetime与单位的行为已被反对

如何在Power Query中按名称和时间总和进行分组

无法导入已安装的模块

如何修复使用turtle和tkinter制作的绘画应用程序的撤销功能

如何使用SubProcess/Shell从Python脚本中调用具有几个带有html标签的参数的Perl脚本?

如何计算两极打印机中 * 所有列 * 的出现次数?

Python中的嵌套Ruby哈希

Godot:需要碰撞的对象的AdditionerBody2D或Area2D以及queue_free?

如何从数据库上传数据到html?

如何在UserSerializer中添加显式字段?

旋转多边形而不改变内部空间关系

pandas:对多级列框架的列进行排序/重新排序

如何防止Pandas将索引标为周期?

替换现有列名中的字符,而不创建新列