#python #python-3.x
#python #python-3.x
Вопрос:
Ввод: я хочу взять файл .txt, содержащий содержимое (см. Пример содержимого, которое будет в файле .txt ниже)
soccerfif@yahoo.com 366-44-4444 Jezos was born Jeffrey Preston Jorgensen on January 12, 1964, also 5 and 4
Процесс: я хочу запустить его через мою функцию Def (replace_numbers)
Вывод: я хочу, чтобы файл, который был запущен через функцию, был добавлен для удаления всех чисел (см. Пример ниже)
soccerfif@yahoo.com 366-44-4444 Jezos was born Jeffrey Preston Jorgensen on January 12, 1964, also and
Вот мой код:
import re
theFile=open("/home/file/wow.txt",'rt', encoding= 'latin-1').read()
words=theFile.split()
def replace_numbers(words):
new_words=[]
for word in words:
pattern= re.compile(" d ")
if pattern.match(1):
new_word= re.sub(pattern, " ", word)
new_words.append(new_word)
return new_words
r=replace_numbers(words)
print(r)
Запустил я запустил этот код, я получил сообщение об ошибке: ожидаемая строка или байтоподобный объект
Любые предложения о том, как использовать функцию def, чтобы сделать это с файлом.?
Комментарии:
1. Можете ли вы опубликовать точное сообщение об обратном отслеживании?
2. Где сообщение об ошибке указывало на проблему? И в вашем образце ожидаемого результата вообще ничего не добавлено.
3. Даже 12 и 1964 являются числами. Я видел, что вы не удалили их в своем ожидаемом выводе?
Ответ №1:
Вот как я бы поступил :
theFile = open ("wow.txt",'rt', encoding= 'latin-1').read()
words = theFile.split()
def replace_numbers (words) :
exclude_list = [str (x) for x in range (10)]
new_words = []
for word in words :
if word not in exclude_list :
new_words.append (word)
return new_words
r = replace_numbers (words)
print (r)
Комментарии:
1.
exclude_list = list('0123456789')
было бы намного более читабельным. И благодаря быстрому тестированию это в 1000 раз быстрее.