Hi

I am looping a list of files and want to skip any empty files.
I get an error that str is not an iterator which I sought of understand but 
can't see a workaround for.

How do I make this an iterator so I can use next on the file if my test returns 
true.

Currently my code is.

for dir_path, subdir_list, file_list in os.walk(my_dir):
    for name_pattern in file_list:
        full_path = os.path.join(dir_path, name_pattern)


def return_files(file_list):
    """
    Take a list of files and return file when called.

    Calling function to supply attributes
    """
    for file in file_list:
        with open(os.path.join(dir_path, file), 'rb') as fd:
            if os.stat(fd.name).st_size == 0:
                next(file)
            else:
                yield fd

Exact error is:

C:\Users\Sayth\Anaconda3\envs\race\python.exe 
C:/Users/Sayth/PycharmProjects/bs4race/race.py data/ -e *.xml
Traceback (most recent call last):
  File "C:/Users/Sayth/PycharmProjects/bs4race/race.py", line 98, in <module>
    data_attr(rootObs)
  File "C:/Users/Sayth/PycharmProjects/bs4race/race.py", line 51, in data_attr
    for xml_data in roots:
  File "C:/Users/Sayth/PycharmProjects/bs4race/race.py", line 32, in 
return_files
    next(file)
TypeError: 'str' object is not an iterator

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

Reply via email to