J'ai une liste de mots qui contient des retours pour séparer chaque nouvelle lettre. Existe-t-il un moyen de supprimer par programme chacun de ces retours à l'aide d'E/S sur fichier en Python?
Edit: Je sais comment manipuler des chaînes pour supprimer les retours. Je souhaite modifier physiquement le fichier afin que ces déclarations soient supprimées.
Je cherche quelque chose comme ça:
wfile = open("wordlist.txt", "r+")
for line in wfile:
if len(line) == 0:
# note, the following is not real... this is what I'm aiming to achieve.
wfile.delete(line)
>>> string = "testing\n"
>>> string
'testing\n'
>>> string = string[:-1]
>>> string
'testing'
Ceci dit en gros "coupe la dernière chose de la chaîne" Le :
est l'opérateur "slice". Ce serait une bonne idée de lire comment cela fonctionne tel quel very utile.
MODIFIER
Je viens de lire votre question mise à jour. Je pense que je comprends maintenant. Vous avez un fichier, comme ceci:
aqua:test$ cat wordlist.txt
Testing
This
Wordlist
With
Returns
Between
Lines
et vous voulez vous débarrasser des lignes vides. Au lieu de modifier le fichier en cours de lecture, créez un nouveau fichier dans lequel vous pouvez écrire les lignes non vides de l'ancien fichier, comme suit:
# script
rf = open("wordlist.txt")
wf = open("newwordlist.txt","w")
for line in rf:
newline = line.rstrip('\r\n')
wf.write(newline)
wf.write('\n') # remove to leave out line breaks
rf.close()
wf.close()
Tu devrais obtenir:
aqua:test$ cat newwordlist.txt
Testing
This
Wordlist
With
Returns
Between
Lines
Si vous voulez quelque chose comme
TestingThisWordlistWithReturnsBetweenLines
juste commenter
wf.write('\n')
Vous pouvez utiliser la méthode rstrip d'une chaîne pour supprimer les caractères de nouvelle ligne d'une chaîne.
>>> 'something\n'.rstrip('\r\n')
>>> 'something'
Le plus efficace est de ne pas spécifier de valeur de strip
'\nsomething\n'.split()
enlèvera tous les caractères spéciaux et les espaces de la chaîne
simplement utiliser, cela résout le problème.
string.strip("\r\n")
Supprimer les lignes vides du fichier:
#!/usr/bin/env python
import fileinput
for line in fileinput.input("wordlist.txt", inplace=True):
if line != '\n':
print line,
Le fichier est déplacé vers un fichier de sauvegarde et la sortie standard est dirigée vers le fichier d'entrée.
'whatever\r\r\r\r\r\r\r\r\n\n\n\n\n'.translate(None, '\r\n')
résultats
'whatever'