# Charles Edgar
# November 4, 2021
# In this lesson I learned How to read data from a file one line at a time, and how to strip specific
# leading and trailing characters.
# In this lesson, one thing that confused me is that when using the .strip() method, there is no
# separation between the different characters you want to remove. There is only one argument, but it
# takes into account every character entered. Other than having to figure out that fact, I did not
# have any trouble with this lesson.
# [ ]Run to download file poem1.txt
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/poem1.txt -o poem1.txt
# [ ] review and run example
# open address to file
poem1 = open('poem1.txt', 'r')
# [ ] review and run example
# readline 1, 2, 3
poem_line1 = poem1.readline()
poem_line2 = poem1.readline()
poem_line3 = poem1.readline()
# [ ] review and run example: print the first 3 .readline() values
print(poem_line1 + poem_line2 + poem_line3)
# [ ] review and run example printing return value & re-run several times
print(poem1.readline())
# [ ] review and run example to close file in memory- then run previous cell
poem1.close()
# [ ] import https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/rainbow as rainbow.txt
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/rainbow -o rainbow.txt
# [ ] open rainbow.txt as rainbow_text
rainbow_text = open('rainbow.txt','r')
# [ ] read the first 3 lines into variables: color1, color2, color3
color1 = rainbow_text.readline()
color2 = rainbow_text.readline()
color3 = rainbow_text.readline()
# [ ] close rainbow.txt
rainbow_text.close()
# [ ] print the first 3 colors
print(color1 + color2 + color3)
# [ ] review and run example
# open address to file
poem1 = open('poem1.txt', 'r')
# [ ] review and run example - use a while loop to read each line of a file
# remove last character ('\n') and print as upper case
poem_line = poem1.readline()
while poem_line:
print(poem_line[:-1].upper())
poem_line = poem1.readline()
# [ ] review and run example
# Close file in memory
poem1.close()
# [ ] open rainbow.txt as rainbow_text as read-only
rainbow_text = open('rainbow.txt','r')
# [ ] read the color from lines of rainbow_text in a while loop
# [ ] print each color capitalized as the loop runs
color = rainbow_text.readline()
while color:
print(color[:-1].upper())
color = rainbow_text.readline()
# [ ] close rainbow_text
rainbow_text.close()
# [ ] review and run example
# open address to file
poem1 = open('poem1.txt', 'r')
# [ ] review and run example - readline while loop without removing '\n'
poem_line = poem1.readline()
while poem_line:
print(poem_line)
poem_line = poem1.readline()
poem1.close()
# [ ] review and run example - readline with .strip() to remove '\n'
poem1 = open('poem1.txt', 'r')
poem_line = poem1.readline().strip()
while poem_line:
print(poem_line)
poem_line = poem1.readline().strip()
poem1.close()
# [ ] open rainbow.txt as rainbow_text as read-only
rainbow_text = open('rainbow.txt','r')
# [ ] read a color from each line of rainbow_text in a while loop
# use .strip to remove the whitespace '\n' character
# print each color upper case
color = rainbow_text.readline().strip()
while color:
print(color)
color = rainbow_text.readline().strip()
rainbow_text.close()
# [ ] review and run example: import rainbow_messy.txt
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/rainbow_messy -o rainbow_messy.txt
# [ ] review and run example: open file read only
rainbow_messy = open('rainbow_messy.txt', 'r')
# [ ] review and run example: .readline() without .strip()
# Print each color without .strip()
color = rainbow_messy.readline()
while color:
print(color)
color = rainbow_messy.readline()
# [ ] review and run example: strip "*" and newline ('\n')
rainbow_messy = open('rainbow_messy.txt', 'r')
color = rainbow_messy.readline().strip('*\n')
while color:
print(color)
color = rainbow_messy.readline().strip('*\n')
rainbow_messy.close()
# [ ] import the file
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/cities_messy -o cities_messy.txt
# [ ] run to read the file into memory
cities_messy = open('cities_messy.txt', 'r')
# [ ] edit the code to remove leading or trailing colon, newline and space characters
line = cities_messy.readline().strip(':\n ')
while line:
print(line)
line = cities_messy.readline().strip(':\n ')
# [ ] import https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/poem2_messy as poem2_messy.txt
!curl https://raw.githubusercontent.com/MicrosoftLearning/intropython/master/poem2_messy -o poem2_messy.txt
# [ ] open poem2_messy.txt as poem2_messy in read mode
poem2_messy = open('poem2_messy.txt','r')
# [ ] edit while loop to strip the leading and trailing parenthesis, and newlines
# [ ] print the poem
line = poem2_messy.readline().strip('()\n')
while line:
print(line)
line = poem2_messy.readline().strip('()\n')