python字符处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python字符处理相关的知识,希望对你有一定的参考价值。

现有一个文本a.txt存放:
[ 1 2 3
4 5 6 7 8 1 3]
[ 2 3 4 5
6 7 8 9 10 11]
注意,后一个]后数字之间没有空格,前一个[和数字之前有空格,现要求得到b.txt:
1 2 3 4 5 6 7 8 1 3
2 3 4 5 6 7 8 9 10 11

求大神指导,python实现,在线等!采纳再送50分。

file = open('test.txt')
lines = file.readlines()
file.close()
temp1 = ''
for line in lines:
   temp1 = temp1 +line.replace('\\n','')
temp1 = ' '.join(temp1.split())#多个空格变一个空格
temp1 = temp1[2:len(temp1)-1]#去掉首[ 和 尾 ] 
temp1 = temp1.split('][ ')
b = open('b.txt','w')
b.write('\\n'.join(temp1))
b.close()

追问

你好,按照你的这样写,输出的格式,字符之间没有了空格
输出成了:

1234567813

我需要的是每个数字之间有一个空格的,谢谢您了

追答#刚才没注意看了,下面这个应该可以实现了
file = open('test.txt')
lines = file.readlines()
file.close()
temp1 = ''
for line in lines:
   temp1 = temp1 +line.replace('\\n','')
temp1 = ' '.join(temp1.split())#忽略tab键,多个空格变一个空格
temp1 = temp1[2:len(temp1)-1]#去掉首[ 和 尾 ] 
temp1 = temp1.split('][ ')
b = open('b.txt','w')
b.write('\\n'.join(temp1))
b.close()

追问

非常感谢您,但是又有一个新的问题了,结果的前面多一个空格,也是需要去掉的。

追答

没多啊

追问

结果应该是:

1 2 3 4 5 6 7 8 1 3

但是按照您的方法运行后是:
1 2 3 4 5 6 7 8 1 3

最前面多了一个空格
谢谢您!

追答

这个是从 2 开始取的,你看下你有开过来没有

temp1 = temp1[2:len(temp1)-1]#去掉首[ 和 尾 ]

参考技术A #!coding=utf-8

text = '''
[ 1 2 3
  4 5 6 7 8 1 3]
[ 2 3 4 5
  6 7 8 9 10 11]
'''

text1 = open('a.txt', 'r')
text2 = open('b.txt', 'a+')

for i in text1.replace('\\n ', '').split(']'):
    text2.write(i.replace('[', ''))

text1.close()
text2.close()

追问

你好,我跑了几遍还是不可以啊

追答#!coding=utf-8
text = '''
[ 1 2 3
  4 5 6 7 8 1 3]
[ 2 3 4 5
  6 7 8 9 10 11]
'''

text1 = open('a.txt', 'r')
text2 = open('b.txt', 'a+')

for i in text:
    if i.isdigit():
        text2.write('%s ' % i)
    if i == ']':
        text2.write('\\n')

text1.close()
text2.close()

# b.txt
1 2 3 4 5 6 7 8 1 3 
2 3 4 5 6 7 8 9 1 0 1 1

Python字符处理

字符串就是一系列字符。在python中,用引号括起来的都是字符串,这里的引号可以是单引号也可以双引号。

例如:

>>> ‘this is a string‘ 
‘this is a string‘
>>> “this is also a string”
“this is also a string”

 

对字符串的操作:

 

#修改字符串的大小写#

1、修改单词首字符

>>> name=‘alben xue‘
>>> type(name)
<class ‘str‘>
>>> print(name.title())
Alben Xue

title()跟在变量后面,使用.连接,代表通过title()定义的方法对变量name进行处理

2,修改所有字符

>>> name
‘alben xue‘
>>> print(name.upper())
ALBEN XUE
>>> print(name.lower())
alben xue

#合并字符串#

 

在python中,通过“+”进行字符串合并

举例:

>>> first_name=‘xue‘
>>> last_name=‘lingming‘
>>> full_name=first_name+last_name
>>> message=‘hello,‘+full_name.upper()+"!"
>>> print(message)
hello,XUELINGMING!

     “上述代码,把一串字符串存储到变量中,后续所有操作对变量执行,这样会显得更加方便”

#使用制表符或换行符来添加空白#

在编程种,空白泛指任何非打印字符、如空格、制表符、换行符。

1、使用制表符

>>> print(‘python‘)
python
>>> print(‘\tpython‘)
             python

2、使用换行符

>>> print(‘python\C##\nPHP\nJavaScript‘)
python\C##
PHP
JavaScript

3、制表符与换行符共同使用

>>> print(‘Languages:\n\tPython\n\tC##\n\tPHP‘)
Languages:
              Python
              C##
              PHP

#删除多余的空白符#

>>> favorite_language=‘python ‘
>>> favorite_language
‘python ‘

可以看到这个变量中有一个空格,对于程序而言是能识别的,对个个人而言是多余的,如何删除

>>> favorite_language.rstrip()
‘python‘

这只是临时的,要想永久的删除空白,需要把这个字符串存储到变量中

>>> favorite_language=favorite_language.rstrip()
>>> favorite_language
‘python‘

剔除字符串开头的字符

>>> name=‘ alben ‘
>>> name
‘ alben ‘
>>> name.lstrip()    #去头#
‘alben ‘
>>> name.rstrip()   #去尾#
‘ alben‘
>>> name.strip()    #去头去尾#
‘alben‘

 P









































以上是关于python字符处理的主要内容,如果未能解决你的问题,请参考以下文章

Python内置的字符串处理函数整理

Python处理字符串必备方法

Python字符处理

python字符串处理

Python字符串处理方法

Python字符串处理函数