Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除重复空白和有效删除所有空白的简单方法\n_Python_Python 3.x_String_For Loop - Fatal编程技术网

Python 删除重复空白和有效删除所有空白的简单方法\n

Python 删除重复空白和有效删除所有空白的简单方法\n,python,python-3.x,string,for-loop,Python,Python 3.x,String,For Loop,我有一个名为test.txt的文件,它有一堆重复的空格。test.txt文件包含HTML。我想删除所有不必要的空白,以减小test.txt文件中内容的大小。如何删除重复的空格并将整个字符串放在一行上 test.txt <center> <b class="test" >My name is fred</ b> <center> 我的名字 是 弗雷德 我想打印什么 <center><b

我有一个名为
test.txt的文件,它有一堆重复的空格。
test.txt
文件包含HTML。我想删除所有不必要的空白,以减小
test.txt
文件中内容的大小。如何删除重复的空格并将整个字符串放在一行上

test.txt

 <center>
    <b class="test" >My       name

is


fred</      b> <center>

我的名字
是
弗雷德

我想打印什么

<center><b class="test">My name is fred</b><center>
我叫弗雷德
打印什么

<center><b class="test" >Mynameisfred</b> <center>
Mynameisfred

program.py

def is_white_space(before, curr, after):

    # remove duplicate spaces
    if (curr == " " and (before == " " or after == " ")):
        return True

    # Remove all \n
    elif (curr == "\n"):
        return True

    return False


f = open('test.txt', 'r')
contents = f.read()
f.close()

new = "";
i = 0
while (i < len(contents)):

    if (i != 0 and
        i != (len(contents) - 1) and
        not is_white_space(contents[i - 1], contents[i], contents[i + 1])):
        new += contents[i]

    i += 1

print(new)
def是白色空间(之前、当前、之后):
#删除重复的空格
如果(curr==”和(before==”或after==”):
返回真值
#删除所有\n
elif(curr==“\n”):
返回真值
返回错误
f=打开('test.txt','r')
contents=f.read()
f、 关闭()
新=”;
i=0
而(i
这将在数字或字母之间留下一个空格

from string import ascii_letters, digits


def main():
    with open('test.txt', 'r') as f:
        parts = f.read().split()

    keep_separated = set(ascii_letters) | set(digits)

    for i in range(len(parts) - 1):
        if parts[i][-1] in keep_separated and parts[i + 1][0] in keep_separated:
            parts[i] = parts[i] + " "

    print(''.join(parts))


if __name__ == '__main__':
    main()