On 2016-10-02 01:21, Sayth Renshaw wrote:
Hi

I have a fileobject which was fine however now I want to delete a line from the 
file object before yielding.

def return_files(file_list):
    for filename in sorted(file_list):

When joining paths together, it's better to use 'os.path.join'.

        with open(dir_path + filename) as fd:
             for fileItem in fd:
                 yield fileItem

Ned gave an answer over here http://stackoverflow.com/a/6985814/461887

for i, line in enumerate(input_file):
    if i == 0 or not line.startswith('#'):
        output.write(line)

which I would change because it is the first line and I want to rid <!--

for i, line in enumerate(input_file):
    if line.startswith(<!--'):
        output.write(line)

However I do not want to write the file I want to restore all the enumerated 
files back to the fileItem I need to yield.

How do I do this?

You use the logic of the answer from StackOverflow in your 'return_files' function:

def return_files(file_list):
    for filename in sorted(file_list):
        with open(dir_path + filename) as fd:
            for fileItem in fd:
                if keep_item(fileItem):
                    yield fileItem


If you need to know the line number when deciding whether to keep a line, use enumerate too:

def return_files(file_list):
    for filename in sorted(file_list):
        with open(dir_path + filename) as fd:
            for i, fileItem in enumerate(fd):
                if keep_item(fileItem, i):
                    yield fileItem

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to