删除空格的Python拆分方法....为什么?

时间:2013-10-13 01:49:21

标签: python-3.x split

我做了我想要的事情(拿一个文件,将文字的中间字母洗牌然后重新加入),但由于某种原因,即使我要求它在空格上分割,空格也会被删除。这是为什么?

import random

File_input= str(input("Enter file name here:"))

text_file=None
try:
    text_file = open(File_input)
except FileNotFoundError:
    print ("Please check file name.")



if text_file:            
    for line in text_file:
        for word in line.split(' '):
            words=list (word)
            Internal = words[1:-1]
            random.shuffle(Internal)
            words[1:-1]=Internal
            Shuffled=' '.join(words)
            print (Shuffled, end='')

1 个答案:

答案 0 :(得分:1)

如果您希望将分隔符作为值的一部分:

d = " " #delim
line = "This is a test" #string to split, would be `line` for you
words =  [e+d for e in line.split(d) if e != ""]

这样做是拆分字符串,但返回拆分值加上使用的分隔符。结果仍然是一个列表,在本例中为['This ', 'is ', 'a ', 'test ']

如果您希望将分隔符作为结果列表的一部分,而不是使用常规str.split(),则可以使用re.split()。文档说明:

  

re.split(pattern,string [,maxsplit = 0,flags = 0])
  拆分字符串   模式的出现。如果在模式中使用捕获括号,   那么模式中所有组的文本也作为一部分返回   得到的清单。

所以,你可以使用:

import re
re.split("( )", "This is a test")

结果:  ['this', ' ', 'is', ' ', 'a', ' ', 'test']