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))