Skip to Main Content

DevOps, CI/CD and Automation

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Need help translating Python phrase

rjsosiAug 24 2020 — edited Aug 24 2020

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!

Comments
Post Details
Added on Aug 24 2020
0 comments
152 views