python截取二进制文件

接到任务,截取dat文件,每个数据784个字节,现要取一定百分比的数据
主要涉及了python文件读写,命令行参数使用

# -*- coding: utf-8 -*-

import sys
import os

if __name__ == "__main__":
    datPath = sys.argv[1]
    pst = sys.argv[2]
    k = float(pst)
    datOut = datPath[0:-4]+str(k)+"%.dat"
    k = k/100.0
    try:
        datIn = open(datPath,"rb")
        datOut = open(datOut, "wb")
    except Exception,e:
        print e;
        exit(-2)
    size = os.path.getsize(datPath)
    nIn = size/784
    nOut = int(nIn*k)
    try:
        for i in range(0,nOut):
            temp = datIn.read(784)
            datOut.write(temp)
    finally:
        datIn.close()
        datOut.close()


  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
截取Python二进制文件的一部分数据,可以使用以下步骤: 1. 首先,使用命令行参数将要截取文件路径和要截取的百分比作为输入传递给Python脚本。例如,你可以在命令行中输入以下命令来运行脚本: `python script.py input.dat 50` 2. 在Python脚本中,使用`sys.argv`获取命令行参数,其中`sys.argv`表示输入文件的路径,`sys.argv`表示要截取的百分比。 3. 打开输入文件和输出文件,以二进制模式读取输入文件并以相同的模式写入输出文件。 4. 使用`os.path.getsize()`函数获取输入文件的大小,以便计算要截取的数据量。 5. 根据给定的百分比计算要截取的数据数量,并将其转换为整数。 6. 使用一个循环来读取输入文件中的数据块,每个数据块的大小为784字节。在每次循环中,读取784字节的数据块并将其写入输出文件。 7. 最后,记得关闭输入文件和输出文件。 下面是一个示例的Python代码,展示了如何实现二进制文件截取: ```python import sys import os if __name__ == "__main__": # 获取命令行参数 datPath = sys.argv + "_" + str(k) + "%.dat" k = k/100.0 try: # 打开输入文件和输出文件 datIn = open(datPath, "rb") datOut = open(datOut, "wb") # 获取输入文件的大小 size = os.path.getsize(datPath) # 计算要截取的数据数量 nIn = size/784 nOut = int(nIn * k) # 截取数据并写入输出文件 for i in range(0, nOut): temp = datIn.read(784) datOut.write(temp) except Exception as e: print(e) exit(-2) finally: # 关闭文件 datIn.close() datOut.close() ``` 这个脚本接受两个命令行参数,第一个是要截取文件路径,第二个是要截取的百分比。它会根据给定的百分比截取输入文件的数据,并将其写入一个新的文件中。截取后的文件名是在输入文件名的基础上添加了百分比的一部分。 请注意,这只是一个基本的示例代码,你可以根据实际需求进行修改和优化。<span class="em">1</span><span class="em">2</span><span class="em">3</span>

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值