I am creating a program that will take user input and read a txt file to print number of lines, vowels, and numeric characters within it, repeating until the user does not want to execute it again. I am able to get the correct print for lines, however I am getting 0 for vowels and numeric characters. I believe that Python counts the strings line by line using the open function but requires the .read() function to iterate through individual characters. As such, I have assigned char as the variable for that iteration.
def txtcount():
    count = 0
    vowels = 0
    numerical = 0
    fname = input('Please enter file name: ')
    fopen = open(fname)
    for line in fopen:
        count +=1
    char = fopen.read()
    for number in char:
        if number.isnumeric():
            numerical = int(number) + 1
    for vwl in char:
        if vwl.isalpha():
            if vwl is 'a' 'A' 'e' 'E' 'i' 'I' 'o' 'O' 'u' 'U' 'y' 'Y' :
                vowels += int(vwl) + 1
            else :
                vowels = int(vwl) + 0 
    print('File',fname,'has', count, 'lines.')
    print('File',fname,'has', vowels, 'vowels')
    print('File',fname,'has', numerical, 'numerical characters\n')
    
    
while True:
    txtcount()
    tryagain = input('Do you want to try again? (y or n)').lower()
    if tryagain == 'y' :
        continue
    if tryagain == 'n' :
         break
print('Thanks for playing!')
 
    