标签: binaryfiles

Bash脚本 - 读取二进制文件

我是脚本新手,但我有很多使用C#和Java等语言编程的经验.

我有一个包含二进制数据的文件.我想编写一个Bash脚本来读取该文件中包含的年,月和日,这样我就可以根据记录日期将相关的MOD文件排序到文件夹中.我找不到一种方法来读取二进制数据并在bash脚本中解析它.有没有办法做到这一点?

bash scripting binaryfiles

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

为什么TortoiseHg认为Resource.h是二进制的?

使用Visual Studio 2010.我有一个TortoiseHg认为是二进制的resource.h文件,因此它不会在提交窗口中显示它的差异.我可以在文本编辑器中轻松打开文件,看到它是纯文本.

我看到了一个相关的问题(为什么Mercurial认为我的SQL文件是二进制文件?)这表明它与文件编码有关.确实在Notepad ++中打开文件说该文件位于"UCS-2 Little Endian"中.我怎样才能解决这个问题?显然,我不想打破一些Visual Studio的期望.

mercurial binaryfiles tortoisehg visual-studio visual-c++

6
推荐指数
2
解决办法
1222
查看次数

Git"无法合并二进制文件"错误在持续集成构建中

我们有一个自动化系统,它将我们的开发分支合并到一个发布分支中.

合并是通过命令完成的git merge -s recursive -X theirs development.

我们遇到的问题是,在将开发合并到发布时,合并在二进制文件上失败.

错误是:" warning: Cannot merge binary files: Resources/Main/Images/image.png (HEAD vs. development)".

如何在没有用户交互的情况下合并两个分支?从开发到发布的所有内容都可以"赢得"合并.

git merge binaryfiles

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

-B文件测试的可靠性如何?

当我打开一个SQLite数据库文件时,文件开头有很多可读文本 - 由于-B文件测试,SQLite文件被错误地过滤的可能性有多大?

#!/usr/bin/env perl
use warnings;
use strict;
use 5.10.1;
use File::Find;

my $dir = shift;
my $databases;

find( {
    wanted     => sub {
        my $file = $File::Find::name;
        return if not -B $file;
        return if not -s $file;
        return if not -r $file;
        say $file;
        open my $fh, '<', $file or die "$file: $!";
        my $firstline = readline( $fh ) // '';
        close $fh or die $!;
        push @$databases, $file if $firstline =~ /\ASQLite\sformat/;
    },
    no_chdir   => …
Run Code Online (Sandbox Code Playgroud)

perl binaryfiles find

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

python Image PIL到二进制Hex

from PIL import Image
from PIL import ImageDraw
from PIL import ImageFont
import urllib.request
import io
import binascii

data = urllib.request.urlopen('http://pastebin.ca/raw/2311595').read()
r_data = binascii.unhexlify(data)
stream = io.BytesIO(r_data)
img = Image.open(stream)
draw = ImageDraw.Draw(img)
font = ImageFont.truetype("arial.ttf",14)
draw.text((0, 220),"This is a test11",(0,255,0),font=font)
draw = ImageDraw.Draw(img)

with open(img,'rb') as in_file: #error on here invalid file:
     hex_data = in_file.read()
# Unhexlify the data.
bin_data = binascii.unhexlify(bytes(hex_data))
print(bin_data)
Run Code Online (Sandbox Code Playgroud)

题

将十六进制转换为图像并在图像上绘制文本,之后将图像转换为二进制十六进制,但在这里遇到问题with open(img,'rb') as in_file:,如何将img转换为十六进制?

python hex image binaryfiles python-imaging-library

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

键入trait以标识可以二进制形式读取/写入的类型

是否有类型特征(或概念)来识别以下哪些类型是安全的?

template <typename T>
std::enable_if_t<std::some_type_trait<T>::value> Write(std::ostream &os,const T &x)
  { os.write(reinterpret_cast<const char *>(&x),sizeof(T)); }

template <typename T>
std::enable_if_t<std::some_type_trait<T>::value> Read(std::istream &is,T &x)
  { is.read(reinterpret_cast<char *>(&x),sizeof(T)); }
Run Code Online (Sandbox Code Playgroud)

我在考虑包含POD的类,不包括指针(但不包括数组).有点像StandardLayoutTypes但没有指针.我既不想约束对象TrivialType也不是TriviallyCopyable.

对不起,如果我不准确.我对数据表示知之甚少.

c++ binaryfiles traits c++11

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

R readBin与Python结构

我试图使用Python读取二进制文件.其他人使用以下代码使用R读取数据:

x <- readBin(webpage, numeric(), n=6e8, size = 4, endian = "little")
      myPoints <- data.frame("tmax" = x[1:(length(x)/4)],
                             "nmax" = x[(length(x)/4 + 1):(2*(length(x)/4))],
                             "tmin" = x[(2*length(x)/4 + 1):(3*(length(x)/4))],
                             "nmin" = x[(3*length(x)/4 + 1):(length(x))])
Run Code Online (Sandbox Code Playgroud)

使用Python,我正在尝试以下代码:

import struct

with open('file','rb') as f:
    val = f.read(16)
    while val != '':
        print(struct.unpack('4f', val))
        val = f.read(16) 
Run Code Online (Sandbox Code Playgroud)

我的结果略有不同.例如,R中的第一行返回4列为-999.9,0,-999.0,0.对于所有四列(下图),Python返回-999.0.

Python输出: 在此输入图像描述

R输出: 在此输入图像描述

我知道他们正在使用一些[]代码来填充文件的长度,但是我不知道在Python中究竟是如何做到这一点的,我也不明白为什么他们这样做.基本上,我想重新创建R在Python中所做的事情.

如果需要,我可以提供更多代码库.我不想用不必要的代码来压倒.

python r binaryfiles

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

在Python中读取直接访问二进制文件格式

背景:

使用以下Fortran代码在Linux机器上读取二进制文件:

        parameter(nx=720, ny=360, nday=365)
c 
        dimension tmax(nx,ny,nday),nmax(nx,ny,nday)
        dimension tmin(nx,ny,nday),nmin(nx,ny,nday)
c 
        open(10,
     &file='FILE',
     &access='direct',recl=nx*ny*4)
c
        do k=1,nday
        read(10,rec=(k-1)*4+1)((tmax(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+2)((nmax(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+3)((tmin(i,j,k),i=1,nx),j=1,ny) 
        read(10,rec=(k-1)*4+4)((nmin(i,j,k),i=1,nx),j=1,ny) 
        end do
Run Code Online (Sandbox Code Playgroud)

档案细节:

options  little_endian
title global daily analysis (grid box mean, the grid shown is the center of the grid box)
undef -999.0
xdef 720 linear    0.25 0.50
ydef 360  linear -89.75 0.50
zdef 1 linear 1 1
tdef 365 linear 01jan2015 1dy
vars 4
tmax     1  00 daily maximum temperature (C)
nmax     1  00 number of reports …
Run Code Online (Sandbox Code Playgroud)

python fortran binaryfiles

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

在 Spark Scala 中读取二进制文件

我需要从二进制文件中提取数据。

我用过binaryRecords并得到了RDD[Array[Byte]]。

从这里我想将每条记录解析为 case class (Field1: Int, Filed2 : Short, Field3: Long)

我怎样才能做到这一点?

scala binaryfiles apache-spark

5
推荐指数
1
解决办法
7706
查看次数

在python中将浮点二进制文件读入二维数组

现在我有一个包含浮点数据的二进制文件,每个数据是4个字节,我想将其读入一个2D数组,当我使用

B1 = np.fromfile('/home/lijiao/Documents/transform/Data/AHI8_OBI_1000M_NOM_20160812_0040.hdf_B1.dat', dtype=float)
Run Code Online (Sandbox Code Playgroud)

它会给我一个长度为60500000的一维数组,那么如何以每4个字节读取数据呢?

编辑:这是我的解决方案:

filename = '/home/lijiao/Documents/transform/Data/AHI8_OBI_1000M_NOM_20160812_0040.hdf_B1.dat'

with open(filename, 'rb') as f:
data = np.fromfile(f, dtype=np.float32)
array = np.reshape(data, [11000, 11000])
Run Code Online (Sandbox Code Playgroud)

python arrays numpy binaryfiles

5
推荐指数
0
解决办法
9401
查看次数