【问题标题】:How to remove python white spaces [closed]如何删除python空格[关闭]
【发布时间】:2013-03-27 20:14:11
【问题描述】:

我想从这样的文件行中读取 A = B = 411 没有任何空格/空格。我试过了

import os
import re
import fileinput

#-------------------------------------------------------------------------------

fileName = "input.txt"

f = open(fileName,"r")
lines = f.readlines()
for i in lines:
    character = i.split()
    for n in character:

        if  n != '#':
            print n

        else:
            print "End of File"

输入.txt

A = B = 411
C = ( D = 2 ) * _2
C = D = 2 * _2
F = C - D
E = D * _10
Z = 10 / 3
#

现在的问题是,如果我在输入文件中的字母/数字之间留出空格,则程序可以正常工作。但是如果空格被删除,那么输出就像 A=B=411 我不想要..任何人都可以帮助我...如何保持从文件中读取的数据的完整性...

【问题讨论】:

  • 我不明白你想要什么......你能提供一些示例输入/输出吗?
  • 你不想要空格,但你也不想删除空格?
  • 用户希望能够在输入中包含空格,但仍能得到正确的输出。
  • 空格使i.split() 工作并轻松解析您的输入。如果删除它们,则必须编写更复杂的解析器。识别数字、运算符等的一种。你为什么要这么做?
  • 我想删除空格......我正在从文件 input.txt 中读取......我想保持文件内容的完整性意味着我不想改变意思......例如...我想从文件中读取单词,但在这种情况下,如果我写 A = B 那么没问题,但如果我写 A=B 它认为它是一个我不想要的整个单词

标签: python regex string automation


【解决方案1】:

默认情况下(即没有附加参数)字符串对象的split()方法将忽略空格并将字符串拆分为单词列表。因此,使用它以及进行一些其他更改以简化和加速您的代码导致了以下结果:

fileName = "input.txt"
with open(fileName,"r") as file:
    for line in file:
        for word in line.split():
            if  word != '#':
                print word
            else:
                print "End of File"

【讨论】:

    【解决方案2】:

    如果要删除空格,可以将character = i.split() 替换为

    character = list(i.replace(" ", ""))
    

    【讨论】:

      猜你喜欢
      • 2021-10-04
      • 1970-01-01
      • 2020-09-15
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多