Python: Salvar arquivo texto sem a primeira linha [RESOLVIDO]

1. Python: Salvar arquivo texto sem a primeira linha [RESOLVIDO]

Walmir Jr
py3in

(usa Ubuntu)

Enviado em 29/11/2015 - 16:35h

Estou usando esta classe para usar comandos shell


# Executa comandos em shell script no Python
# e pega retorno.
import os
from subprocess import Popen, PIPE

class Cmd(object):
def __init__(self, cmd):
self.cmd = cmd
def __call__(self, *args):
command = '%s %s' %(self.cmd, ' '.join(args))
result = Popen(command, stdout=PIPE, stderr=PIPE, shell=True)
return result.communicate()

class Sh(object):
def __getattr__(self, attribute):
return Cmd(attribute)

sh = Sh()


Ela funciona perfeitamente.
Meu problema, exemplo.


arquivo ttt.txt
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#
import getopt, sys, random, mechanize, cookielib,html2text
from BeautifulSoup import BeautifulSoup
import os
import requests
import urllib2
import re
import time
from sys import exit

# O módulo subprocess é necessário para executar comandos externos ao Python
import subprocess
#A função return_code é usada para chamar o comando ifconfig e retorna sua saída
#return_code = subprocess.call('ifconfig', shell=True)

##############################################################################
# GravaListaLinhaPorLinha - Pega uma lista e força gravar linha por linha.
##############################################################################
# 1 A lista tem texto separado por virgula.
# 2 O Arquivo de destino para onde vamos enviar a lista linha a linha.
# Retorna nada, só os arquivos prontos.
# O aquivo de envio pode ser um temporário.
# Arquivo de destino não precisa existir.
#def GravaListaLinhaPorLinha(lista,arquivo) :


Quero executar um comando que já salve o novo arquivo sem a primeira, segunda ou terceira linha.
Só consigo fazer assim.


umalinha = sh.head(" -n 1 ttt.txt") # pego a primeira linha
comando = "-v " + umalinha + "ttt.txt"
meugreep = sh.grep(comando)


Talvez a solução esteja em usar um comando shell direto mas não sei qual é.
A solução ideal seria o comando em uma linha.

Wal

ps: perdi tudo rsrs digitei de novo.


  


2. Re: Python: Salvar arquivo texto sem a primeira linha [RESOLVIDO]

Walmir Jr
py3in

(usa Ubuntu)

Enviado em 29/11/2015 - 17:40h


Temporariamente estou usando assim.

 
arq_origem = origem + "geral_temp.txt"
arq_tmp = origem + "geral_temp1.txt"

# Le linha de origem
lendo1linha = sh.head("-n 1 " + arq_origem)
# Deixa linha limpa para usar o grep
pronto = "'"+lendo1linha[0].strip()+"'"

# Monta string para disparar a classe.
comando = "-v "+pronto+" "+arq_origem+" >"+arq_tmp

# Quando executo o comando salvando novo arquivo não vem retorno.
# Mas funciona bem e rápido.
meuarqpronto = sh.grep(comando)





3. Re: Python: Salvar arquivo texto sem a primeira linha [RESOLVIDO]

Walmir Jr
py3in

(usa Ubuntu)

Enviado em 30/11/2015 - 18:06h


Após tentar muito, encontrei uma outra solução similar aqui no VOL e vou utilizar.
SH - UMA COLEÇÃO DE COMANDOS DO SHELL IMPLEMENTADOS EM PYTHON
http://www.vivaolinux.com.br/dica/sh-Uma-colecao-de-comandos-do-shell-implementados-em-Python

Não achei uma forma simples de executar em uma linha sem correr o risco de perder o arquivo atual.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts