Уведомления

Группа в Telegram: @pythonsu

#1 Авг. 2, 2020 17:36:37

R1709
Зарегистрирован: 2020-08-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

У меня есть файл. И в файле есть такая информация
ws@hotmail.com | 1000
05@yahoo.com | 1000
ves@gmail.com | 1000
ntTV@gmail.com | 1000
adgets@gmail.com | 1000
ybil@gmail.com | 1000

Так вот. Нужно удалить ‘|’ и последующие цифры. Спасибо

Офлайн

#2 Авг. 2, 2020 17:42:57

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

R1709
А зачем тут питон?



Офлайн

#3 Авг. 2, 2020 18:01:09

R1709
Зарегистрирован: 2020-08-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

FishHook
R1709А зачем тут питон?
Ну когда таких данных 2 тысячи то тогда нужен питон. Вручную это делать очень долго

Офлайн

#4 Авг. 2, 2020 18:25:13

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

R1709
Ну когда таких данных 2 тысячи то тогда нужен питон. Вручную это делать очень долго
А вы кроме “вручную” и “питоном” других способов не знаете?

    
master:~$ touch d.test
master:~$ echo 'dddd | 1000' >> d.test
master:~$ echo 'aaaa | 1000' >> d.test
master:~$ echo 'bbbb | 1000' >> d.test
master:~$ cat d.test
dddd | 1000
aaaa | 1000
bbbb | 1000
master:~$ cat d.test | cut -d'|' -f1 > c.test
master:~$ cat c.test
dddd
aaaa
bbbb



Отредактировано FishHook (Авг. 2, 2020 18:25:24)

Офлайн

#5 Авг. 2, 2020 18:31:44

R1709
Зарегистрирован: 2020-08-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

FishHook
Я спрашивал как это сделать на ПИТОНЕ А НЕ НА ЛИНУКСЕ. ЧТО НЕ ПОНЯТНОГО?

Отредактировано R1709 (Авг. 2, 2020 18:36:41)

Офлайн

#6 Авг. 3, 2020 01:02:40

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

R1709
Ну когда таких данных 2 тысячи то тогда нужен питон. Вручную это делать очень долго
Так это на Windows если сидишь. Хотя и там можно поставить и sed, и awk.
[guest@localhost py]$ cat file.txt 
ws@hotmail.com | 1000
05@yahoo.com | 1000
ves@gmail.com | 1000
ntTV@gmail.com | 1000
adgets@gmail.com | 1000
ybil@gmail.com | 1000
[guest@localhost py]$ cat file.txt | awk '{print $1}' >file_out.txt
[guest@localhost py]$ cat file_out.txt
ws@hotmail.com
05@yahoo.com
ves@gmail.com
ntTV@gmail.com
adgets@gmail.com
ybil@gmail.com
[guest@localhost py]$

[guest@localhost py]$ cat file.txt 
ws@hotmail.com | 1000
05@yahoo.com | 1000
ves@gmail.com | 1000
ntTV@gmail.com | 1000
adgets@gmail.com | 1000
ybil@gmail.com | 1000
[guest@localhost py]$ awk '{print $1}' file.txt >file_out.txt
[guest@localhost py]$ cat file_out.txt
ws@hotmail.com
05@yahoo.com
ves@gmail.com
ntTV@gmail.com
adgets@gmail.com
ybil@gmail.com
[guest@localhost py]$

А на питоне нужно будет окрыть файл ввода и открыть файл вывода, в цикле прочитать строку, разделить её по разделителю, записать часть строки до разделителя в файл вывода, после цикла закрыть файл ввода и файл вывода.

Можно хитрее сделать - работать с потоком ввода и передавать результат на поток вывода. А потом просто на ввод подать данные из файла, а вывод из программы сохранить в файл. Даже на винде это сработает, так как это ещё в DOS'е было принято делать.
Тогда файлы открывать не надо, можно просто использовать input() и print() в питоне для ввода/вывода.



Отредактировано py.user.next (Авг. 3, 2020 01:06:21)

Офлайн

#7 Авг. 3, 2020 11:02:51

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

R1709
Ты не просил решение на питоне, ты просил просто решение. Твоя задача не выглядит как студенческая, в которой есть ограничения на применяемые технологии, и поэтому тебе предложили решение лучше - использовать средства операционной системы в задачах для которых они предназначены. Взрослые люди обращающиеся на форум за советом благодарны любому совету, даже если этот совет не соответствует ожиданиям - для того и нужен форум, чтобы делиться опытом, а вовсе не для того, чтобы цитировать учебник ленивым студентам. Если ты считаешь, что тебе тут кто-то что-то должен и ты будешь строить из себя обиженую девочку по каждому поводу, то лучше поискать другой форум



Офлайн

#8 Авг. 3, 2020 12:42:23

R1709
Зарегистрирован: 2020-08-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

FishHook
R1709Ты не просил решение на питоне, ты просил просто решение. Твоя задача не выглядит как студенческая, в которой есть ограничения на применяемые технологии, и поэтому тебе предложили решение лучше - использовать средства операционной системы в задачах для которых они предназначены. Взрослые люди обращающиеся на форум за советом благодарны любому совету, даже если этот совет не соответствует ожиданиям - для того и нужен форум, чтобы делиться опытом, а вовсе не для того, чтобы цитировать учебник ленивым студентам. Если ты считаешь, что тебе тут кто-то что-то должен и ты будешь строить из себя обиженую девочку по каждому поводу, то лучше поискать другой форум
Во первых это питон форум(PYTHON.SU И РАЗДЕЛ ПИТОН ДЛЯ НОВИЧКОВ тебе не о чем не говорит?) . Поэтому я сюда зашел и спросил ответ. Обиженная девчонка это ты если не можешь вытерпеть упрека

Отредактировано R1709 (Авг. 3, 2020 12:48:05)

Офлайн

#9 Авг. 3, 2020 12:43:16

R1709
Зарегистрирован: 2020-08-02
Сообщения: 6
Репутация: +  0  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

py.user.next
Спасибо

Офлайн

#10 Авг. 3, 2020 22:22:39

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10022
Репутация: +  857  -
Профиль   Отправить e-mail  

Нужно удалить не нужные данные из файла

iofilter.py

  
#!/usr/bin/env python3
 
while True:
    try: 
        s = input()
    except EOFError:
        break
    print(s.split(' | ', 1)[0])

[guest@localhost iofilter]$ ls
input.txt iofilter.py
[guest@localhost iofilter]$ cat input.txt
ws@hotmail.com | 1000
05@yahoo.com | 1000
ves@gmail.com | 1000
ntTV@gmail.com | 1000
adgets@gmail.com | 1000
ybil@gmail.com | 1000
[guest@localhost iofilter]$ cat input.txt | ./iofilter.py > output.txt
[guest@localhost iofilter]$ cat output.txt
ws@hotmail.com
05@yahoo.com
ves@gmail.com
ntTV@gmail.com
adgets@gmail.com
ybil@gmail.com
[guest@localhost iofilter]$

В Windows вместо cat используешь type обычно.
wiki. MS-DOS. type

Выглядеть будет так
type input.txt | iofilter.py > output.txt

И там, точно не помню, PowerShell многие команды допускает, похожие на линуксовые. Так что может даже и cat быть, и ls. Я находил какие-то давно, которых в Windows без PowerShell не было.



Отредактировано py.user.next (Авг. 3, 2020 22:32:13)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version