Найти - Пользователи
Полная версия: Нужно удалить не нужные данные из файла
Начало » Python для новичков » Нужно удалить не нужные данные из файла
1 2
R1709
У меня есть файл. И в файле есть такая информация
ws@hotmail.com | 1000
05@yahoo.com | 1000
ves@gmail.com | 1000
ntTV@gmail.com | 1000
adgets@gmail.com | 1000
ybil@gmail.com | 1000

Так вот. Нужно удалить ‘|’ и последующие цифры. Спасибо
FishHook
R1709
А зачем тут питон?
R1709
FishHook
R1709А зачем тут питон?
Ну когда таких данных 2 тысячи то тогда нужен питон. Вручную это делать очень долго
FishHook
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
R1709
FishHook
Я спрашивал как это сделать на ПИТОНЕ А НЕ НА ЛИНУКСЕ. ЧТО НЕ ПОНЯТНОГО?
py.user.next
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() в питоне для ввода/вывода.
FishHook
R1709
Ты не просил решение на питоне, ты просил просто решение. Твоя задача не выглядит как студенческая, в которой есть ограничения на применяемые технологии, и поэтому тебе предложили решение лучше - использовать средства операционной системы в задачах для которых они предназначены. Взрослые люди обращающиеся на форум за советом благодарны любому совету, даже если этот совет не соответствует ожиданиям - для того и нужен форум, чтобы делиться опытом, а вовсе не для того, чтобы цитировать учебник ленивым студентам. Если ты считаешь, что тебе тут кто-то что-то должен и ты будешь строить из себя обиженую девочку по каждому поводу, то лучше поискать другой форум
R1709
FishHook
R1709Ты не просил решение на питоне, ты просил просто решение. Твоя задача не выглядит как студенческая, в которой есть ограничения на применяемые технологии, и поэтому тебе предложили решение лучше - использовать средства операционной системы в задачах для которых они предназначены. Взрослые люди обращающиеся на форум за советом благодарны любому совету, даже если этот совет не соответствует ожиданиям - для того и нужен форум, чтобы делиться опытом, а вовсе не для того, чтобы цитировать учебник ленивым студентам. Если ты считаешь, что тебе тут кто-то что-то должен и ты будешь строить из себя обиженую девочку по каждому поводу, то лучше поискать другой форум
Во первых это питон форум(PYTHON.SU И РАЗДЕЛ ПИТОН ДЛЯ НОВИЧКОВ тебе не о чем не говорит?) . Поэтому я сюда зашел и спросил ответ. Обиженная девчонка это ты если не можешь вытерпеть упрека
R1709
py.user.next
Спасибо
py.user.next
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 не было.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB