易截截图软件、单文件、免安装、纯绿色、仅160KB

郁闷,python 0d0a换行问题

import os,sys,zipfile
teststr = open('1.txt').read()
zipFile = zipfile.ZipFile('test.zip','w')
zipFile.writestr('test.txt',teststr)
zipFile.close()

上面的代码,1.txt里的换行是0d0a
可是写到zip里面的test.txt的换行确是0a
为什么?
文本没所谓吧,压缩一般用2进制读写,所以计较的话python内建open的模式用'rb',或者干脆用zipFile.write开档压缩都应该是一致性...

二进制处理 teststr = open('test.txt', 'rb').read()

zipfile里不用管换行是什么吧。文本文件才要注意0d0a或0a

zip不用管,但把ZIP解压后,换行就不是原来的换行了。

引用
zipfile里不用管换行是什么吧。文本文件才要注意0d0a或0a


确实存在这种问题的可能.
因为Python在将字符串从1.txt读取出来之后,会将Windows中的换行(回车换行0d0a)转换成0a,所以,在写入zip文件后就变成了0a。

转换的原因是打开1.txt文件的模式为ASC码方式,也就是以文本方式打开的缘故,以文本方式打开文件,文件的某些字符会被转换。如果不想改变文件中的某些控制字符,那么应该以二进制的方式打开文件,读取文件。


相关问答:

python list中添加类对象的问题

在list中添加一个类的局部变量 这样做是否合法 请看下面例子:
Python code:

class A():
def __init__( self ):
self.__a = 0
self.__b = 'hello'
def get_a( self ):
ret ......

python 3.x的if语句

>>> x=-1
>>> if x>0:
print ('11')

>>> else:

SyntaxError: invalid syntax (<pyshell#20>, line 1)
网上搜的也是:
>>> x=int(input("Please ent ......

IronPython中如何添加Python模块?

IronPython中的功能太少了,很多常用的Python模块都没有,也加上不。
还得用CLR来扩展。
搞到方法了,如下:
Python code:

import sys #导入sys module;
sys.path.append("c:/Python24/Lib") ......

各位大侠,Python 编码问题

例子是这样的:

>>> str1 = '小狗'
>>> str1
'小狗'
>>> str1.encode('utf-8')
b'\xe5\xb0\x8f\xe7\x8b\x97'
>>> str2 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号