17如何对字符串进行左, 右, 居中对齐 18如何去掉字符串中不需要的字符 19如何读写文本文件 20如何处理二进制文件 21如何设置文件的缓冲

Posted 爬行的龟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17如何对字符串进行左, 右, 居中对齐 18如何去掉字符串中不需要的字符 19如何读写文本文件 20如何处理二进制文件 21如何设置文件的缓冲相关的知识,希望对你有一定的参考价值。

17、如何对字符串进行左, 右, 居中对齐

info = "GBK"
print(info.ljust(20))
print(info.ljust(20,\'#\'))
print(info.rjust(20,\'#\'))
print(info.center(20,"#"))
print(format(info,\'<20\'))
print(format(info,\'>20\'))
print(format(info,\'^20\'))


result:
GBK                 
GBK#################
#################GBK
########GBK#########
GBK                 
                 GBK
        GBK         

18、如何去掉字符串中不需要的字符

 

PS:方法四 在py3里已经不支持删除多种字符串了,只保留给字符串重新映射

 

#strip删除两边,lstrip删除左边,rstrip删除右边,只能删除两端的
info = "      GBK      "
print(info.strip(),info.lstrip(),info.rstrip())
info2 = "+++GBK---"
print(info.strip(\'+-\'))
#删除::str切片+拼接
info3 = "abc::def"
print(info3[:3]+info3[5:])

#replace方法可以替换str中间的字符,一次只能替换一种
info4 = "afsd\\$asdf\\$asdf\\^asdf"
print(info4.replace(\'\\$\',\'\'))

#使用re.sub可以一次替换多种
import re
print(re.sub(\'[\\$\\^]\',\'\',info4))
#使用translate替换,translate有个功能,可以给str加入映射表,达到进行加密的目的
print(str.maketrans(\'abcxyz\',\'xyzabc\'))
info5 = \'abcxy\\tz\\r6\\n66gggxyz\'
print(info5.translate(str.maketrans(\'abcxyz\',\'xyzabc\')))

结果:
GBK GBK             GBK
      GBK      
abcdef
afsdasdfasdf\\^asdf
afsd\\asdf\\asdf\\asdf
{97: 120, 98: 121, 99: 122, 120: 97, 121: 98, 122: 99}
6
66gggabc

19、如何读写文本文件

python2中,默认编码是unicode编码,这种编码不能直接存储物理硬件(磁盘的扇区、网络的socket)中,需要转换成string(由连续的字节组成)

info = u\'你好\'
print(info)
print(info.encode(\'utf-8\'))

result:

你好
b\'\\xe4\\xbd\\xa0\\xe5\\xa5\\xbd\'

在py2中,如果没有编码成str,数据不能写进文件中

info = u\'你好\'
with open(\'H3\',\'w\') as f:
    #存入文件前,需要先编码成str
    f.write(info)

retsult:
Traceback (most recent call last):
  File "C:/laoni/PycharmProjects/Pythontest/test2.py", line 46, in <module>
    f.write(info)
UnicodeEncodeError: \'ascii\' codec can\'t encode characters in position 0-1: ordinal not in range(128)


读取文件也需要解码:
with open(\'H3\',\'r\') as f2:
t = f2.read()
print(t.decode(\'utf8\'))
 

在py3中 py2的str变成了byte,unicode变成了str(真正意义上的连续字符串),在py3 表示byte需要在字符串前加个b

在py2中需要加个u\'\'表示unicode字符串,而py3中默认就是unicode(也就是str),不需要添加。

在py3中open函数功能更强大,可以使用encoding指定编码格式

 

info = \'你好\'
#open通过encoding参数自动编码成utf8
with open(\'H3\',\'wt\',encoding=\'utf8\') as f:
    f.write(info)

#读取文件的时候,自动解码成utf8,不要和上面存入时的编码搞混,文件里的数据显示的是连续的字节
with open(\'H3\',\'rt\',encoding=\'utf8\') as f2:
    print(f2.read())

20、如何处理二进制文件

 

 

 

 

 

 21、如何设置文件的缓冲

#全缓冲
f = open("demo.txt",\'w\',buffering=2000)
f.write(\'+\' *2001)

#行缓冲
f2 =open("demo.txt",\'w\',buffering=1)

#无缓冲
f3 = open("demo.txt",\'w\',buffering=0)

 

以上是关于17如何对字符串进行左, 右, 居中对齐 18如何去掉字符串中不需要的字符 19如何读写文本文件 20如何处理二进制文件 21如何设置文件的缓冲的主要内容,如果未能解决你的问题,请参考以下文章

4-5如何对字符串进行左, 右, 居中对齐

4-6如何对字符串进行左, 右, 居中对齐

word2010插入公式以后无法调整公式左对齐、居中、右对齐等等,如何解决?

VB 如何把richtextbox中已经选中的部分文字,加粗、左对齐、居中、右对齐。不胜感激!!!

C语言输出如何右对齐?

Word论文写作如何实现公式居中、编号右对齐