Python读入一个整数n和一个Unicode码值u

Python015

Python读入一个整数n和一个Unicode码值u,第1张

输出到屏幕时宽度为11个字符

键盘输入一个9800到9811之间的正整数n,作为Unicode编码,把n-1、n和n+1三个Unicode编码对应字符按照格式要求输出到屏幕:宽度为11个字符。

实际项目中经常遇到读取二进制问题,Python下读取二进制文件一般用Python的文件打开读写相关函数和struct.

1。获取文件名filename,可用对话框,也可以直接手写

2。打开文件,这里中是打开,像看书一样,只是打开书,还没有看里面的内容,可以看,也可以不看

binFile=open(filename,'rb')

3。那就看看吧,binFile现在就是书的名字了。这里我们读入4个字,如果read()将读入整个文件

context=binFile.read(4)

4。读入之后问题来了,context包含四个字(4Bytes),但这四个字是加密的(二进制)。这时要找翻译struct.unpack

realContext=struct.unpack(format,context)

5。format的就是加密规则了,由1,2,4,8个字节组成其他类型,或者其他类型的数组。

a,b,c,d=struct.unpack('4c',context)

读入四个字符

对应格式参考 www.jianshu.com/p/5a985f29fa81

6。打开文件后用完一定要关闭,和看书一个样,看完后要合上,不合上后果自己去想

binFile.close()

7。查找内容,文件内容可以一个一个字的按顺序读出,但如果已经知道内容在什么位置,可以用查找方式读出。

binFile.seek(100)

context=binFile.read(4)

读出100位置后面的4个字,(101,102,103,104)

8。Python还提供也一些高级读写功能,如整行读取等

from itertools import islice

N = 1000000 #每次读入100w行

with open( 'your_File_path','r') as f:

while True:

next_n_lines = list(islice(f,N))

if not next_n_lines: break

#print(str(next_n_lines))

#将每次读入的n行记录转换成DataFrame处理

next_n_lines="".join(next_n_lines)

TESTDATA = StringIO(next_n_lines)

df = pd.read_csv(TESTDATA, sep="\t",header=None,names=['col_1','col_2','col_Name'],dtype=str)

print(df)

time.sleep(1)