Python
September 28, 2023
Примеры на Python: замена, удаление, фильтрация, анализ
def zamena(file_path, old_symbol, new_symbol): with open(file_path, "r") as f: data = f.read() data = data.replace(old_symbol, new_symbol) with open(file_path, "w") as f: f.write(data) zamena("zamena.txt", "1", "test")
Делаем тоже самое, что и выше, но в этой строке:
zamena("zamena.txt", "1", "test")
Убираем "test", т. е. оставляем пустым, вот так:
zamena("zamena.txt", "1", "")
with open('ishodnii_file.txt', 'r') as infile, open('resultat.txt', 'w') as outfile: for line in infile: if any(char.isalpha() for char in line): outfile.write(line)
import pandas as pd # Путь к CSV файлу file_path = '2.csv' # Загрузка данных из CSV в DataFrame df = pd.read_csv(file_path) # Номер столбца, который нужно удалить (нумерация с 1) column_to_delete = 3 # Например, удаляем третий столбец # Удаление столбца по номеру df.drop(df.columns[column_to_delete - 1], axis=1, inplace=True) # Сохранение измененного DataFrame в CSV файл df.to_csv(file_path, index=False)
Вытащить почты из текстового файла
import re def extract_emails_from_file(filename): emails = [] with open(filename, 'r') as file: text = file.read() email_pattern = r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,}\b' emails = re.findall(email_pattern, text) return emails # Путь к файлу, из которого нужно извлечь email filename = 'file.csv' # Извлекаем email из файла extracted_emails = extract_emails_from_file(filename) # Выводим извлеченные email print("Почты:") for email in extracted_emails: print(email)
Удалить строки, которые длиннее x
def remove_long_lines(filename, max_length): # Чтение содержимого файла with open(filename, 'r') as file: lines = file.readlines() # Удаление строк, длина которых превышает max_length filtered_lines = [line for line in lines if len(line) <= max_length] # Запись отфильтрованных строк в файл with open(filename, 'w') as file: file.writelines(filtered_lines) # Указываем путь к файлу и максимальную длину строки для удаления filename = 'file.csv' # путь к файлу max_length = 5 # максимальная длина строки # Вызываем функцию для удаления строк remove_long_lines(filename, max_length)
Удалить строки, которые короче x
import unicodedata def remove_short_lines(filename, min_length): # Чтение содержимого файла with open(filename, 'r', encoding='utf-8') as file: lines = file.readlines() # Удаление строк, длина которых меньше min_length filtered_lines = [line for line in lines if len(unicodedata.normalize('NFC', line).strip()) >= min_length] # Запись отфильтрованных строк в файл with open(filename, 'w', encoding='utf-8') as file: file.writelines(filtered_lines) filename = 'file.csv' # путь к файлу min_length = 5 # минимальная длина строки # Вызываем функцию для удаления строк remove_short_lines(filename, min_length)
Оставить строки, которые содержат x
def filter_lines(input_filename, output_filename, x): try: with open(input_filename, 'r') as input_file, open(output_filename, 'w') as output_file: for line in input_file: if x in line: output_file.write(line) print(f"Строки, содержащие '{x}', были сохранены в файл '{output_filename}'.") except FileNotFoundError: print(f"Файл '{input_filename}' не найден.") if __name__ == "__main__": input_filename = input("Путь к входному файлу: ") output_filename = input("Путь к выходному файлу: ") x = input("Оставить строки с символами: ") filter_lines(input_filename, output_filename, x)
Удалить строки, которые содержат x
def remove_lines_with_symb(input_file, output_file, substring): try: with open(input_file, 'r') as input_file: with open(output_file, 'w') as output_file: for line in input_file: if substring not in line: output_file.write(line) print('Удаление строк, содержащих "{}", завершено. Результат сохранен в {}'.format(substring, output_file)) except FileNotFoundError: print('Файл не найден.') if __name__ == "__main__": input_file = input('Введите путь к входному файлу: ') output_file = input('Введите путь к выходному файлу: ') substring = input('Удалить строки с: ') remove_lines_with_symb(input_file, output_file, substring)
def count_lines(filename, chunk_size=1024): total_lines = 0 with open(filename, 'r') as file: while True: chunk = file.read(chunk_size) if not chunk: break total_lines += chunk.count('\n') return total_lines if __name__ == "__main__": file_name = input("Введите имя файла: ") try: lines_count = count_lines(file_name) print(f"Количество строк в файле '{file_name}': {lines_count}") except FileNotFoundError: print(f"Файл '{file_name}' не найден.") except Exception as e: print(f"Произошла ошибка: {str(e)}")
Подсчет кол-ва x (символ(ы), который(ые) указывает пользователь) в файле
def count_occurrences_in_file(filename, target_char, block_size=4096): total_occurrences = 0 with open(filename, 'r') as file: while True: block = file.read(block_size) if not block: break # Count occurrences of the target character in the block occurrences_in_block = block.count(target_char) total_occurrences += occurrences_in_block return total_occurrences # Запросить у пользователя имя файла и символ для подсчета filename = input("Введите имя файла: ") target_char = input("Введите символ для подсчета: ") # Подсчитать количество символов в файле try: occurrences = count_occurrences_in_file(filename, target_char) print(f"Количество символов '{target_char}' в файле '{filename}': {occurrences}") except FileNotFoundError: print(f"Файл '{filename}' не найден.") except Exception as e: print("Произошла ошибка при подсчете символов:", str(e))