web-dev-qa-db-fra.com

Qu'est-ce qu'un espace de fuite et comment puis-je gérer cela?

une partie de mes codes:

            if self.tagname and self.tagname2 in list1:
                try: 
                    question = soup.find("div", "post-text")
                    title = soup.find("a", "question-hyperlink")
                    self.list2.append(str(title)+str(question)+url)
                    current += 1
                except AttributeError:
                    pass            
            logging.info("%s questions passed, %s questions \
                collected" % (count, current))
            count += 1
        return self.list2

avertissement pep8 est:

trailing whitespace 37:try
trailing whitespace 43:pass

Pouvez-vous s'il vous plaît me dire ce que c'est?

48
Amy Obrian

Les espaces de fin sont les espaces ou les tabulations qui suivent le dernier caractère non-blanc de la ligne jusqu'à la nouvelle ligne.

Dans votre question publiée, il y a un espace supplémentaire après try:, et il y a 12 espaces supplémentaires après pass:

>>> post_text = '''\
...             if self.tagname and self.tagname2 in list1:
...                 try: 
...                     question = soup.find("div", "post-text")
...                     title = soup.find("a", "question-hyperlink")
...                     self.list2.append(str(title)+str(question)+url)
...                     current += 1
...                 except AttributeError:
...                     pass            
...             logging.info("%s questions passed, %s questions \
...                 collected" % (count, current))
...             count += 1
...         return self.list2
... '''
>>> for line in post_text.splitlines():
...     if line.rstrip() != line:
...         print(repr(line))
... 
'                try: '
'                    pass            '

Vous voyez où finissent les cordes? Il y a des espaces avant les lignes (indentation), mais aussi des espaces après.

Utilisez votre éditeur pour trouver la fin de la ligne et le retour arrière. De nombreux éditeurs de texte modernes peuvent également supprimer automatiquement les espaces de fin de ligne, par exemple à chaque fois que vous enregistrez un fichier.

30
Martijn Pieters

Espaces finaux:

It is extra spaces (and tabs) at the end of line      
                                                 ^^^^^ here

Dénudez-les:

#!/usr/bin/env python2
"""\
strip trailing whitespace from file
usage: stripspace.py <file>
"""

import sys

if len(sys.argv[1:]) != 1:
  sys.exit(__doc__)

content = ''
outsize = 0
inp = outp = sys.argv[1]
with open(inp, 'rb') as infile:
  content = infile.read()
with open(outp, 'wb') as output:
  for line in content.splitlines():
    newline = line.rstrip(" \t")
    outsize += len(newline) + 1
    output.write(newline + '\n')

print("Done. Stripped %s bytes." % (len(content)-outsize))

https://Gist.github.com/techtonik/c86f0ea6a86ed3f3889

13

J'ai le même avertissement pep8 W291 trailing whitespace

long_text = '''Lorem Ipsum is simply dummy text  <-remove whitespace
of the printing and typesetting industry.'''

Essayez d’explorer les espaces blancs suivants et supprimez-les. ex: deux espaces à la fin de Lorem Ipsum is simply dummy text

3
heykarimoff