2016-10-25 4 views
0

У меня есть большой файл CSV, который имеет следующий список:Удаление лишних пробелов внутри строки в файле с использованием Python

data1; data2; data3; Data4

в данных4 содержание выглядит так: Bad String

Содержание в данных4 должно выглядеть следующим образом: Correct String

Что является лучшим способом для перебора каждой строки в данных4, чтобы удалить эти лишние пробелы? Я знаю, что мне нужно каким-то образом получить доступ к позиции data4, которая будет [3], но я просто не знаю, как это сделать для каждой строки при реализации дополнительного удаления пространства.

Заранее благодарен!

ответ

0

Вы пробовали регулярное выражение?

import re 

bad_string = "This is  a bad string" 
good_string = re.sub('\s+', ' ', bad_string) # replace multiple spaces with single 

Или, если вы не хотите использовать внешние библиотеки, можно разделить на пробельном и использовать str.join()

bad_string = "This is  a bad string" 
good_string = " ".join(bad_string.split()) 
+0

Спасибо вам @pault за ответ. Я пробовал оба метода и не вносил никаких изменений. Может быть, потому, что я реализую код в файл? так: good_string = re.sub ('\ s +', '', output_file_location), где «output_file_location» выглядит так: «2; PP; 16-й и Конгресс; -97.97 30.27, -97.73 30.27, ..., - 97.73 30.27 « –

+0

@ MichaelMcKeever. Я не уверен, что вы подразумеваете, реализуя код в файл. Код, который я предоставил, принимает строку с любым количеством пробелов и заменяет несколько пробелов одним пробелом. В первом методе используется 're.sub()', который заменяет шаблон поиска '\ s +' (s означает whitespace, + означает обработку последовательности пробелов как единственное вхождение) с одним пробелом. Второй метод разбивает строку на пробелы, а затем объединяет результирующий список в виде строки, используя единое пространство в качестве разделителя. – pault

+0

Я получил его для успешного выполнения! спасибо за помощь! Проблема была в моем синтаксисе в моем цикле for. –

0

Я полагаю, вы имеете в виду есть дополнительная вкладка после некоторой запятой-х:

str1 = "; -77.1565506 38.8912708,\t -77.1552148 38.8913919,\t -77.1549278 38.8921727, -77.1557808 38.8916717, -77.1565506 38.8912708" 
print(str1) 

раздеть вкладки, используйте str.replace(old, new[, max]):

str1_notab = str1.replace('\t','') 
print(str1_notab) 
0

Вы можете просто использовать следующую команду, чтобы удалить лишние пробелы, символы табуляции, новые строки:

original_string = 'This \t\n contains \n \t extra spaces.' 
clean_string = ' '.join(original_string.split()) 
print(clean_string) 

# Output: 'This contains extra spaces.' 
Смежные вопросы