读取非文本格式文件进行修改的 Python 问题

A question not published(I solve it when I write) in 2017.3.20

I just wanted to publish it to stackoverflow, but I solved it.

1.Platform: windows 8
I‘m just trying to modify a file in python 2.7, which is not in plain text
(like .txt, .csv) but docx format,in order to add one or more bytes to
it.
However, when I tried to read it through commands:
with open(‘GGG.docx‘, ‘rb+‘) as f:
contents = f.read() # type(contents): str
with open(‘GGG2.docx‘, ‘rb+‘) as f:
f.writelines(contents)
, the result only appears to be write str to GGG2.docx, instead of bytes
Format of GGG.docx:
    504b 0304 1400 0600 0800 0000 2100 c1f0
    070c 7801 0000 5a06 0000 1300 0802 5b43
    6f6e 7465 6e74 5f54 7970 6573 5d2e 786d
    6c20 a204 0228 a000 0200 0000 0000 0000
    0000 0000 0000 0000 0000 0000 0000 0000
...
Format of GGG2.docx:
    504b 0304 1400 0600 0800 0000 2100 c1f0
    070c 7801 0000 5a06 0000 1300 0802 5b43
    6f6e 7465 6e74 5f54 7970 6573 5d2e 786d
    6c20 a204 0228 a000 0200 0000 0000 0000
    0000 0000 0000 0000 0000 0000 0000 0000
They look the same in editor(sublime), but GGG2.docx is in fact
the plain text ‘504B 0304 ...‘

2. Way 2:
A similar question is ‘http://stackoverflow.com/questions/21677646/python-writing-a-two-byte-string-as-a-single-byte-hex-character-to-a-binary-fi
‘, but it doesn‘t work.

3. Way 3:
In http://stackoverflow.com/questions/12092527/python-write-bytes-to-file,
a method was proposed like this:
    import io
    with open(‘GGG.docx‘, ‘rb+‘) as f:
        contents = f.read() # type(contents): str
    with io.open(‘GGG2.docx‘, ‘rb+‘) as f:
        f.writelines(contents)
But in the link the user suggests it(open instead of io.open) is useful in windows.
Now it works.....
Thank you all the guys.
Yep, I just want to give complaints to the designer of python that made this.

时间: 2024-12-09 05:23:07

读取非文本格式文件进行修改的 Python 问题的相关文章

C#读取固定文本格式的txt文件

C#读取固定文本格式的txt文件 一个简单的C#读取txt文档的程序,文档中用固定的格式存放着实例数据. //判断关键字在文档中是否存在 var isTr = File.ReadAllLines("1.txt").Any(x => x.Split(',')[0] == "设备ID:107157061").ToString(); //获取序列中满足查询条件的第一条数据 var a = File.ReadAllLines("1.txt").Fi

怎么修改PDF文件、PDF格式文件怎么修改!

PDF格式文件虽然使用起来是非常的方便简单,但是这种文件却非常的难编辑,这是为什么呢.原因是PDF文件的格式比较特殊,编辑这种文件需要使用到专业的软件,下面我们就一起来学习了解一下怎么修改PDF这种文件吧! 迅捷PDF编辑器可以对PDF文件进行图片替换.文字修改.绘画标注.页面旋转.输出与打印等.是PDF编辑器果较好的一款PDF编辑器工具,并且安装运行不需要繁琐的设置过程. 1.网上搜索,找到相关资源下载迅捷pdf编辑器,安装后打开至主界面. 2.通过点击栏目上方工具栏中的"文件-打开"

java读取导入csv格式 文件

第一.首先要准备下载一个javacsv.jar架包 public void readeCsv(){ try { ArrayList<String[]> csvList = new ArrayList<String[]>(); //用来保存数据 //注明:或者可以通过前端上传的文件,用一个方法获取上传文件名uploadName(String) String csvFilePath = "C:\\Users\\Administrator\\Desktop/05122017.c

SpringBatch Sample (四)(固定长格式文件读写)

前篇关于Spring Batch的文章,讲述了Spring Batch 对XML文件的读写操作. 本文将通过一个完整的实例,与大家一起讨论运用Spring Batch对固定长格式文件的读写操作.实例延续前面的例子,读取一个含有四个字段的TXT文件(ID,Name,Age,Score),对读取的字段做简单的处理,然后输出到另外一个TXT文件中. 工程结构如下图: applicationContext.xml和log4j.xml前文已经叙述过,在此不做赘述. 本文核心配置文件batch.xml内容如

解析xml文件,修改Jenkins的配置

最近因为服务器移动,在Jenkins中配置的一些地址之类的,都要改变,如图,我因为使用插件Sidebar Links增加一个链接地址,现在地址变了,所以在Jenkins中配置就需要改动link url的地址,如图: 要改变成地址为:192.168.11.11,因为Jenkins的文件配置都是xml文件,我读取对应的xml文件,把文件内容进行更改在重写xml文件,xml文件如下.因为每个项目的url都需要更改,所以工作量还是很大的,所以写了个程序,去找到Jenkins下面所有的job,然后去更改J

js读取修改创建txt文本类型文件(.ini)

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> </h

Qt读取ANSI格式文件——利用QTextCodec将其他编码格式的QByteArray转换为Unicode格式,或者从文件中读出后直接做转换

t使用Unicode来表示字符串.但是通常需要访问一些非Unicode格式的字符串,例如打开一个GBK编码的中文文本文件,甚至一些非Unicode编码的日文,俄文等. Qt提供了QTextCodec类用于不同编码格式之间的转换.关于Qt字符串格式转换以及QTextCodec的使用方式,网上有很多资料.其中大多数看起来很复杂,甚至根本无法完成转换工作,或者是基于较低的Qt版本编写.因此,有必要对使用QTextCodec完成字符串格式转换进行简要说明,本文中代码基于Qt5.1编写. 其实,在Qt帮助

Qt读取ANSI格式文件——利用QTextCodec将其他编码格式转换为Unicode格式

Qt使用Unicode来表示字符串.但是通常需要访问一些非Unicode格式的字符串,例如打开一个GBK编码的中文文本文件,甚至一些非Unicode编码的日文,俄文等. Qt提供了QTextCodec类用于不同编码格式之间的转换.关于Qt字符串格式转换以及QTextCodec的使用方式,网上有很多资料.其中大多数看起来很复杂,甚至根本无法完成转换工作,或者是基于较低的Qt版本编写.因此,有必要对使用QTextCodec完成字符串格式转换进行简要说明,本文中代码基于Qt5.1编写. 其实,在Qt帮

【NLP】Tika 文本预处理:抽取各种格式文件内容

Tika常见格式文件抽取内容并做预处理 作者 白宁超 2016年3月30日18:57:08 摘要:本文主要针对自然语言处理(NLP)过程中,重要基础部分抽取文本内容的预处理.首先我们要意识到预处理的重要性.在大数据的背景下,越来越多的非结构化半结构化文本.如何从海量文本中抽取我们需要的有价值的知识显得尤为重要.另外文本格式常常不一,诸如:pdf,word,excl,xml,ppt,txt等常见文件类型你或许经过一番周折还是有办法处理的.倘若遇到database,html,邮件,RTF,图像,语音