Question: ```
def ints(filename):
    a = []
    f = open(filename, "r")
    lines = f.readlines()
    f.close()
    for line in lines:
        numbers = line.split()
        for number in numbers:            
            a.append(int(number))
    return a

```

This is my function so far, I want to be able to read a file containing integers and characters like "x" and "b" etc and return a list of only the integers. At the moment the function can only deal with a file containing integers.

How can I modify this to exclude characters or letters?

Answer: 
I just simply tested if characters were numbers:

```
sample_string = "Test4. 2325This string3"
a_list = []
for x in sample_string:
    if x.isdigit():
        a_list.append(x)

```
Using more modern Python idioms:

```
def ints(filename):
    with open(filename, "r") as f:
        for line in f:
            for number in line.split():
                try:
                    yield int(number)
                except ValueError:
                    pass

a = list(ints("testdata.txt"))
print(a)

```

Basically, try to convert to int, which will raise ValueError if the string is not a decimal number. Catch it and ignore it and carry on.