Forum Stats

  • 3,760,305 Users
  • 2,251,680 Discussions
  • 7,871,055 Comments

Discussions

Need help translating Python phrase

rjsosi
rjsosi Member Posts: 217 Bronze Badge
edited Aug 24, 2020 11:27AM in Python

Hi,

We're kind in a bind. We had a guy write some Python and then leave. Of course no documentation, no comments.

Not knowing Python we need translate this into Shell script because we're on a dead line to run it.

We are translating a Python 'replace' command in a file_write method.

I am trying to see what '(\"|\\\|'')') would translate to in Linux using the sed command.

Are they looking for " then replacing all "\" with just ')'?

The replace command is at the end of the line below.

Specifically replace = '(\"|\\\|'')' output = dnb.file_write(input_file = gunzip_dnb['file_output'], output_file = 'dnb_{0}{1}'.format(yyyy,mm), folder = gunzip_dnb['folder'], delimiter = '|', header = header_dnb, replace = '(\"|\\\|'')')

Would the Sed statement be something like: sed /'(\"/\\\/'')'/g or in shell script: s/'(\"/\\\/'')'/g?

Is it saying start when you find the first " in a record then replace all '\' with ')"?

In addition here's the code for the file_write method.

def file_write(self, input_file, output_file, delimiter, folder = None, header = None, replace = None):   """  Creates a file from an input of lines.    """   if folder == None:  folder = self._folder   with open('{0}/{1}'.format(folder, input_file), encoding = 'utf-8', errors = 'ignore') as file:  lines = file.readlines()  file_header = self.file_header(lines)  file_trailer = self.file_trailer(lines)  file_date = self.file_date(file_header, file_trailer)  file_output = lines[file_header['line']:file_trailer['line']]   with open('{0}/{1}'.format(folder, output_file), 'w') as output_file:   if not header == None:  output_file.write(header)  output_file.write('\n')   for line in file_output:   if not replace == None:  line = self.line_replace(line, find = replace, replace = '')  line = self.line_split(line, delimiter)  line.insert(0, file_date)  line = ('{0}'.format(delimiter)).join(line)  output_file.write(line)  output_file.write('\n')  file_write = dict()  file_write['file'] = file  file_write['folder'] = folder   return file_write

And for Line_replace:

def line_replace(self, line, find, replace):"""Replaces a value in a line. Parameters----------Returns-------result : """line = re.sub(r'{0}'.format(find), replace, line)return line

Please let us know if you can help.

Thanks!