PDFs and Spreadsheets Puzzle Exercise
Let's test your skills, the files needed for this puzzle exercise
You will need to work with two files for this exercise and solve the following tasks:
- Task One: Use Python to extract the Google Drive link from the .csv file. (Hint: Its along the diagonal from top left to bottom right).
- Task Two: Download the PDF from the Google Drive link (we already downloaded it for you just in case you can't download from Google Drive) and find the phone number that is in the document. Note: There are different ways of formatting a phone number!
Task One: Grab the Google Drive Link from .csv File
import csv
f = open('find_the_link.csv')
csv_reader = csv.reader(f)
data_lines = list(csv_reader)
data_lines
[['h',
'53',
'24',
'46',
'4',
'11',
'3',
'35',
'17',
'52',
'9',
'60',
'26',
'60',
'72',
'39',
'11',
'80',
'86',
'66',
'59',
'9',
'41',
'33',
'11',
'42',
'69',
'74',
'91',
'61',
'5',
'69',
'17',
'17',
'78',
'6',
'51',
'54',
'54',
'94',
'47',
'37',
'0',
'16',
'71',
'6',
'83',
'7',
'6',
'38',
'61',
'18',
'68',
'15',
'2',
'81',
'49',
'5',
'17',
'21',
'36',
'63',
'38',
'24',
'3',
'99'],
['85',
't',
'31',
'54',
'60',
'22',
'77',
'39',
'93',
'38',
'31',
'16',
'29',
'27',
'8',
'35',
'0',
'54',
'84',
'21',
'47',
'37',
'66',
'83',
'26',
'22',
'68',
'25',
'44',
'81',
'27',
'68',
'17',
'63',
'13',
'99',
'38',
'43',
'87',
'83',
'73',
'88',
'67',
'5',
'12',
'10',
'7',
'58',
'64',
'56',
'53',
'88',
'96',
'20',
'7',
'85',
'94',
'23',
'14',
'79',
'24',
'27',
'90',
'40',
'27',
'8'],
['22',
'98',
't',
'83',
'33',
'53',
'66',
'13',
'81',
'53',
'60',
'52',
'45',
'51',
'39',
'98',
'14',
'94',
'68',
'5',
'99',
'62',
'68',
'95',
'50',
'81',
'64',
'58',
'96',
'1',
'71',
'4',
'60',
'57',
'84',
'39',
'5',
'24',
'79',
'19',
'86',
'20',
'15',
'55',
'68',
'26',
'81',
'78',
'3',
'2',
'24',
'64',
'17',
'86',
'3',
'16',
'89',
'81',
'33',
'70',
'42',
'5',
'31',
'42',
'45',
'42'],
['11',
'58',
'4',
'p',
'59',
'85',
'97',
'35',
'11',
'78',
'75',
'23',
'83',
'37',
'79',
'8',
'82',
'42',
'73',
'9',
'13',
'98',
'57',
'50',
'28',
'41',
'55',
'58',
'33',
'85',
'80',
'69',
'64',
'53',
'87',
'38',
'58',
'48',
'31',
'82',
'56',
'14',
'49',
'8',
'50',
'4',
'5',
'9',
'69',
'33',
'61',
'24',
'61',
'21',
'59',
'1',
'81',
'73',
'13',
'75',
'21',
'13',
'15',
'85',
'71',
'36'],
['0',
'15',
'8',
'77',
's',
'90',
'42',
'25',
'38',
'93',
'18',
'81',
'6',
'31',
'17',
'3',
'55',
'91',
'46',
'30',
'28',
'6',
'45',
'66',
'97',
'9',
'71',
'31',
'26',
'50',
'86',
'52',
'24',
'93',
'97',
'18',
'71',
'79',
'61',
'9',
'19',
'67',
'74',
'48',
'54',
'30',
'69',
'1',
'43',
'11',
'8',
'97',
'52',
'22',
'66',
'81',
'55',
'53',
'5',
'91',
'30',
'14',
'62',
'27',
'27',
'33'],
['47',
'43',
'36',
'38',
'37',
':',
'77',
'69',
'20',
'51',
'87',
'31',
'45',
'50',
'43',
'48',
'72',
'47',
'88',
'29',
'25',
'62',
'97',
'70',
'44',
'87',
'76',
'89',
'99',
'93',
'6',
'21',
'68',
'45',
'57',
'40',
'74',
'46',
'71',
'98',
'29',
'8',
'40',
'89',
'90',
'96',
'90',
'32',
'11',
'84',
'87',
'35',
'88',
'75',
'75',
'17',
'74',
'86',
'46',
'96',
'86',
'10',
'14',
'9',
'56',
'0'],
['43',
'73',
'30',
'67',
'47',
'7',
'/',
'88',
'38',
'83',
'36',
'26',
'1',
'69',
'69',
'89',
'96',
'77',
'10',
'5',
'68',
'43',
'19',
'65',
'25',
'48',
'25',
'33',
'29',
'14',
'19',
'87',
'20',
'20',
'35',
'65',
'4',
'89',
'1',
'62',
'40',
'7',
'9',
'98',
'18',
'3',
'58',
'22',
'41',
'95',
'73',
'29',
'8',
'34',
'75',
'38',
'76',
'10',
'62',
'67',
'74',
'90',
'60',
'94',
'4',
'97'],
['26',
'59',
'40',
'91',
'5',
'93',
'0',
'/',
'74',
'80',
'13',
'67',
'15',
'42',
'93',
'3',
'10',
'61',
'9',
'13',
'38',
'68',
'60',
'34',
'37',
'32',
'17',
'60',
'95',
'92',
'44',
'33',
'99',
'69',
'4',
'16',
'80',
'87',
'7',
'9',
'43',
'73',
'64',
'9',
'25',
'12',
'65',
'59',
'1',
'84',
'73',
'40',
'78',
'10',
'64',
'59',
'58',
'25',
'53',
'71',
'72',
'92',
'51',
'15',
'26',
'76'],
['33',
'13',
'17',
'66',
'84',
'74',
'77',
'8',
'd',
'44',
'53',
'14',
'63',
'17',
'62',
'77',
'75',
'61',
'75',
'28',
'57',
'12',
'1',
'36',
'62',
'63',
'8',
'12',
'24',
'85',
'80',
'26',
'18',
'19',
'1',
'13',
'47',
'74',
'72',
'83',
'46',
'53',
'25',
'89',
'74',
'57',
'54',
'12',
'38',
'83',
'38',
'67',
'94',
'75',
'26',
'86',
'91',
'30',
'66',
'75',
'53',
'46',
'60',
'78',
'50',
'47'],
['34',
'76',
'15',
'58',
'37',
'61',
'96',
'57',
'6',
'r',
'98',
'60',
'64',
'32',
'0',
'68',
'32',
'41',
'72',
'99',
'13',
'29',
'88',
'59',
'45',
'85',
'93',
'19',
'39',
'5',
'2',
'35',
'80',
'11',
'35',
'34',
'3',
'55',
'27',
'3',
'3',
'57',
'90',
'75',
'54',
'85',
'6',
'10',
'7',
'95',
'9',
'30',
'25',
'25',
'87',
'1',
'55',
'9',
'1',
'76',
'90',
'6',
'60',
'87',
'33',
'86'],
['67',
'30',
'97',
'49',
'27',
'14',
'17',
'28',
'60',
'74',
'i',
'21',
'24',
'66',
'83',
'25',
'99',
'62',
'89',
'27',
'85',
'48',
'23',
'93',
'12',
'9',
'13',
'70',
'41',
'21',
'85',
'12',
'3',
'39',
'71',
'36',
'84',
'55',
'30',
'4',
'48',
'75',
'47',
'89',
'39',
'97',
'56',
'38',
'23',
'84',
'58',
'72',
'79',
'22',
'13',
'23',
'14',
'29',
'2',
'31',
'11',
'42',
'94',
'3',
'34',
'52'],
['95',
'42',
'42',
'95',
'95',
'20',
'9',
'29',
'65',
'26',
'13',
'v',
'82',
'66',
'67',
'96',
'48',
'7',
'36',
'89',
'73',
'98',
'3',
'23',
'50',
'89',
'42',
'75',
'84',
'6',
'73',
'5',
'93',
'83',
'1',
'39',
'22',
'33',
'76',
'61',
'49',
'53',
'66',
'23',
'81',
'63',
'50',
'97',
'13',
'51',
'47',
'13',
'12',
'44',
'71',
'42',
'7',
'59',
'70',
'96',
'37',
'30',
'3',
'1',
'78',
'16'],
['96',
'28',
'68',
'65',
'40',
'12',
'36',
'15',
'39',
'57',
'35',
'49',
'e',
'4',
'65',
'73',
'75',
'77',
'29',
'64',
'35',
'70',
'11',
'1',
'2',
'88',
'95',
'22',
'44',
'50',
'82',
'98',
'50',
'53',
'14',
'28',
'39',
'50',
'12',
'18',
'59',
'41',
'68',
'7',
'81',
'69',
'57',
'68',
'48',
'74',
'45',
'7',
'11',
'14',
'23',
'58',
'10',
'16',
'49',
'64',
'62',
'27',
'40',
'84',
'12',
'68'],
['80',
'10',
'31',
'78',
'64',
'18',
'88',
'41',
'98',
'89',
'99',
'69',
'36',
'.',
'56',
'44',
'30',
'85',
'7',
'74',
'71',
'9',
'84',
'91',
'25',
'78',
'0',
'28',
'4',
'97',
'3',
'63',
'1',
'74',
'55',
'74',
'22',
'21',
'49',
'65',
'6',
'23',
'50',
'72',
'43',
'51',
'4',
'29',
'2',
'92',
'20',
'96',
'72',
'69',
'34',
'7',
'8',
'32',
'59',
'78',
'75',
'66',
'98',
'90',
'58',
'20'],
['0',
'67',
'15',
'39',
'97',
'49',
'72',
'53',
'56',
'29',
'18',
'67',
'39',
'20',
'g',
'66',
'61',
'29',
'67',
'93',
'13',
'97',
'64',
'63',
'92',
'78',
'68',
'25',
'87',
'32',
'82',
'36',
'63',
'6',
'29',
'60',
'11',
'59',
'13',
'16',
'14',
'88',
'96',
'39',
'47',
'68',
'44',
'13',
'2',
'34',
'20',
'29',
'89',
'3',
'99',
'74',
'75',
'41',
'77',
'62',
'34',
'12',
'90',
'32',
'18',
'74'],
['49',
'56',
'7',
'76',
'3',
'54',
'65',
'76',
'68',
'89',
'60',
'19',
'51',
'93',
'13',
'o',
'25',
'18',
'29',
'49',
'88',
'31',
'25',
'98',
'70',
'83',
'64',
'26',
'89',
'74',
'91',
'30',
'5',
'56',
'39',
'25',
'2',
'74',
'83',
'98',
'44',
'71',
'98',
'69',
'66',
'13',
'20',
'28',
'2',
'42',
'91',
'63',
'74',
'6',
'52',
'54',
'82',
'54',
'83',
'39',
'10',
'70',
'50',
'53',
'47',
'68'],
['68',
'62',
'73',
'17',
'3',
'84',
'97',
'56',
'12',
'65',
'46',
'24',
'40',
'81',
'18',
'25',
'o',
'93',
'29',
'44',
'28',
'11',
'45',
'44',
'28',
'97',
'79',
'35',
'4',
'9',
'83',
'4',
'20',
'21',
'22',
'53',
'36',
'74',
'43',
'55',
'19',
'76',
'52',
'92',
'34',
'78',
'23',
'33',
'30',
'21',
'96',
'31',
'69',
'60',
'63',
'97',
'90',
'42',
'61',
'25',
'83',
'78',
'10',
'31',
'58',
'95'],
['78',
'84',
'3',
'55',
'56',
'17',
'83',
'59',
'74',
'8',
'46',
'10',
'30',
'78',
'75',
'27',
'24',
'g',
'54',
'71',
'1',
'23',
'47',
'3',
'72',
'64',
'55',
'35',
'21',
'69',
'10',
'45',
'25',
'10',
'57',
'41',
'95',
'48',
'97',
'17',
'52',
'27',
'47',
'89',
'55',
'62',
'38',
'34',
'29',
'42',
'32',
'81',
'11',
'79',
'83',
'85',
'44',
'86',
'59',
'21',
'22',
'80',
'20',
'73',
'1',
'47'],
['89',
'51',
'33',
'16',
'51',
'38',
'64',
'29',
'32',
'82',
'61',
'38',
'16',
'11',
'97',
'29',
'37',
'94',
'l',
'92',
'18',
'0',
'62',
'0',
'12',
'40',
'6',
'1',
'27',
'74',
'22',
'44',
'72',
'77',
'30',
'36',
'89',
'0',
'84',
'44',
'94',
'1',
'84',
'96',
'21',
'17',
'99',
'91',
'18',
'5',
'36',
'50',
'85',
'51',
'81',
'8',
'99',
'39',
'54',
'80',
'8',
'40',
'56',
'35',
'74',
'98'],
['25',
'49',
'44',
'14',
'73',
'92',
'59',
'92',
'62',
'74',
'40',
'9',
'37',
'78',
'96',
'31',
'92',
'5',
'52',
'e',
'77',
'75',
'81',
'5',
'54',
'75',
'10',
'51',
'85',
'87',
'1',
'81',
'70',
'86',
'87',
'75',
'58',
'85',
'65',
'46',
'0',
'46',
'36',
'61',
'62',
'37',
'69',
'96',
'70',
'10',
'6',
'31',
'61',
'6',
'81',
'52',
'64',
'63',
'94',
'4',
'86',
'22',
'50',
'64',
'14',
'86'],
['23',
'13',
'55',
'56',
'67',
'59',
'30',
'26',
'43',
'29',
'62',
'66',
'39',
'41',
'91',
'91',
'23',
'22',
'95',
'78',
'.',
'69',
'62',
'54',
'8',
'50',
'22',
'32',
'42',
'53',
'36',
'20',
'95',
'77',
'39',
'97',
'49',
'26',
'83',
'54',
'53',
'58',
'57',
'5',
'0',
'65',
'28',
'67',
'12',
'25',
'68',
'70',
'73',
'13',
'93',
'49',
'25',
'88',
'36',
'97',
'5',
'24',
'24',
'61',
'18',
'95'],
['58',
'8',
'97',
'14',
'85',
'12',
'1',
'11',
'73',
'81',
'16',
'52',
'53',
'99',
'2',
'56',
'58',
'13',
'64',
'31',
'48',
'c',
'28',
'81',
'92',
'13',
'61',
'70',
'91',
'56',
'7',
'39',
'41',
'64',
'94',
'83',
'3',
'61',
'27',
'10',
'45',
'20',
'75',
'68',
'24',
'91',
'35',
'60',
'52',
'27',
'81',
'8',
'35',
'63',
'16',
'88',
'74',
'93',
'56',
'47',
'16',
'79',
'90',
'83',
'84',
'69'],
['22',
'92',
'48',
'20',
'57',
'73',
'11',
'27',
'7',
'67',
'69',
'90',
'7',
'21',
'2',
'69',
'15',
'66',
'78',
'88',
'66',
'21',
'o',
'40',
'15',
'20',
'32',
'48',
'73',
'27',
'46',
'70',
'30',
'22',
'51',
'73',
'19',
'94',
'48',
'56',
'99',
'20',
'22',
'0',
'5',
'47',
'14',
'65',
'91',
'98',
'96',
'50',
'40',
'6',
'80',
'66',
'36',
'33',
'24',
'73',
'84',
'86',
'25',
'11',
'84',
'26'],
['26',
'68',
'67',
'55',
'93',
'98',
'69',
'98',
'37',
'37',
'14',
'48',
'53',
'32',
'3',
'0',
'75',
'65',
'84',
'38',
'42',
'22',
'83',
'm',
'54',
'51',
'68',
'43',
'56',
'84',
'72',
'65',
'72',
'99',
'16',
'73',
'41',
'4',
'19',
'36',
'71',
'87',
'29',
'30',
'85',
'74',
'32',
'46',
'49',
'85',
'13',
'92',
'14',
'97',
'60',
'69',
'62',
'9',
'43',
'32',
'18',
'95',
'24',
'66',
'98',
'79'],
['61',
'77',
'4',
'29',
'6',
'16',
'3',
'71',
'26',
'20',
'24',
'1',
'60',
'45',
'61',
'99',
'79',
'67',
'65',
'29',
'40',
'24',
'44',
'39',
'/',
'7',
'26',
'28',
'10',
'74',
'30',
'35',
'86',
'78',
'94',
'9',
'61',
'2',
'16',
'30',
'10',
'60',
'56',
'27',
'47',
'11',
'15',
'28',
'21',
'81',
'95',
'49',
'7',
'92',
'91',
'13',
'26',
'52',
'24',
'94',
'27',
'72',
'29',
'86',
'18',
'51'],
['92',
'18',
'21',
'88',
'72',
'26',
'43',
'35',
'62',
'75',
'40',
'92',
'61',
'35',
'52',
'10',
'49',
'77',
'18',
'1',
'28',
'9',
'32',
'96',
'37',
'o',
'48',
'47',
'4',
'57',
'42',
'45',
'93',
'90',
'71',
'24',
'10',
'16',
'41',
'99',
'83',
'15',
'23',
'76',
'48',
'35',
'65',
'37',
'89',
'15',
'9',
'91',
'64',
'61',
'45',
'59',
'24',
'63',
'34',
'1',
'6',
'44',
'93',
'60',
'89',
'50'],
['25',
'5',
'38',
'85',
'25',
'88',
'56',
'71',
'96',
'27',
'93',
'14',
'7',
'2',
'22',
'49',
'93',
'93',
'5',
'56',
'75',
'11',
'36',
'19',
'81',
'11',
'p',
'42',
'54',
'29',
'20',
'31',
'1',
'12',
'40',
'65',
'18',
'2',
'89',
'68',
'77',
'66',
'53',
'95',
'20',
'85',
'7',
'92',
'46',
'44',
'16',
'13',
'59',
'53',
'90',
'64',
'67',
'38',
'79',
'26',
'69',
'13',
'63',
'59',
'1',
'64'],
['2',
'95',
'27',
'12',
'92',
'78',
'73',
'64',
'53',
'92',
'75',
'23',
'81',
'18',
'16',
'66',
'22',
'20',
'13',
'31',
'15',
'30',
'65',
'62',
'46',
'60',
'3',
'e',
'68',
'98',
'86',
'82',
'93',
'12',
'16',
'68',
'78',
'62',
'36',
'15',
'47',
'91',
'17',
'77',
'65',
'98',
'45',
'52',
'69',
'5',
'52',
'50',
'46',
'73',
'17',
'7',
'72',
'84',
'7',
'26',
'52',
'40',
'86',
'36',
'80',
'66'],
['52',
'85',
'6',
'13',
'7',
'57',
'51',
'42',
'66',
'33',
'11',
'78',
'51',
'43',
'21',
'55',
'13',
'38',
'90',
'47',
'73',
'18',
'65',
'80',
'89',
'11',
'85',
'25',
'n',
'48',
'33',
'47',
'33',
'12',
'65',
'28',
'42',
'80',
'89',
'58',
'24',
'65',
'46',
'23',
'20',
'72',
'92',
'51',
'82',
'40',
'85',
'67',
'79',
'50',
'87',
'27',
'31',
'74',
'71',
'84',
'41',
'84',
'55',
'16',
'43',
'61'],
['72',
'58',
'16',
'98',
'95',
'38',
'35',
'17',
'83',
'22',
'37',
'55',
'1',
'18',
'25',
'75',
'0',
'39',
'64',
'35',
'76',
'94',
'3',
'42',
'86',
'97',
'36',
'68',
'49',
'?',
'5',
'23',
'62',
'8',
'79',
'56',
'32',
'30',
'86',
'8',
'13',
'17',
'76',
'43',
'82',
'74',
'82',
'90',
'47',
'6',
'79',
'57',
'95',
'44',
'40',
'9',
'59',
'25',
'75',
'6',
'90',
'39',
'97',
'18',
'38',
'93'],
['48',
'14',
'7',
'47',
'65',
'92',
'98',
'96',
'23',
'3',
'41',
'21',
'17',
'3',
'1',
'99',
'3',
'57',
'13',
'50',
'81',
'58',
'43',
'2',
'33',
'68',
'33',
'72',
'1',
'66',
'i',
'80',
'26',
'11',
'83',
'35',
'29',
'28',
'75',
'38',
'13',
'66',
'71',
'32',
'57',
'67',
'10',
'56',
'46',
'27',
'82',
'9',
'28',
'29',
'99',
'44',
'35',
'22',
'56',
'2',
'99',
'28',
'2',
'29',
'56',
'76'],
['77',
'34',
'47',
'96',
'48',
'73',
'58',
'81',
'28',
'52',
'58',
'1',
'4',
'65',
'57',
'72',
'52',
'66',
'37',
'46',
'51',
'95',
'23',
'0',
'15',
'86',
'7',
'95',
'81',
'63',
'87',
'd',
'46',
'78',
'47',
'83',
'26',
'3',
'6',
'77',
'44',
'3',
'30',
'9',
'43',
'27',
'37',
'37',
'98',
'11',
'78',
'82',
'22',
'36',
'11',
'93',
'53',
'85',
'49',
'4',
'7',
'38',
'24',
'63',
'85',
'11'],
['47',
'8',
'16',
'16',
'52',
'47',
'55',
'31',
'51',
'2',
'18',
'24',
'51',
'8',
'21',
'7',
'6',
'21',
'59',
'91',
'88',
'53',
'67',
'92',
'58',
'99',
'51',
'67',
'9',
'28',
'5',
'87',
'=',
'61',
'23',
'10',
'56',
'4',
'63',
'23',
'28',
'21',
'14',
'18',
'66',
'60',
'58',
'94',
'37',
'65',
'10',
'70',
'79',
'28',
'7',
'27',
'29',
'83',
'93',
'6',
'1',
'27',
'90',
'92',
'27',
'1'],
['56',
'33',
'68',
'16',
'13',
'21',
'83',
'10',
'94',
'95',
'96',
'58',
'16',
'97',
'82',
'24',
'87',
'1',
'19',
'73',
'25',
'17',
'0',
'35',
'79',
'41',
'16',
'58',
'90',
'58',
'81',
'80',
'41',
'1',
'11',
'30',
'97',
'67',
'84',
'49',
'57',
'29',
'46',
'56',
'40',
'21',
'85',
'93',
'10',
'93',
'36',
'67',
'18',
'35',
'46',
'50',
'3',
'57',
'90',
'72',
'4',
'66',
'24',
'69',
'16',
'19'],
['13',
'10',
'91',
'85',
'32',
'71',
'26',
'58',
'91',
'15',
'29',
'7',
'78',
'10',
'51',
'18',
'54',
'40',
'39',
'34',
'33',
'68',
'81',
'63',
'61',
'38',
'68',
'98',
'40',
'72',
'9',
'59',
'50',
'89',
'G',
'28',
'17',
'10',
'12',
'23',
'86',
'74',
'52',
'25',
'76',
'27',
'10',
'20',
'77',
'26',
'20',
'62',
'13',
'80',
'57',
'73',
'67',
'7',
'35',
'8',
'64',
'27',
'99',
'81',
'10',
'66'],
['54',
'0',
'69',
'6',
'70',
'76',
'91',
'1',
'44',
'32',
'17',
'92',
'90',
'8',
'15',
'48',
'80',
'38',
'9',
'89',
'37',
'36',
'92',
'62',
'82',
'8',
'65',
'4',
'70',
'75',
'85',
'95',
'21',
'17',
'21',
'6',
'8',
'56',
'73',
'40',
'9',
'61',
'42',
'7',
'81',
'20',
'23',
'67',
'45',
'59',
'44',
'69',
'78',
'91',
'83',
'45',
'38',
'44',
'27',
'26',
'57',
'4',
'55',
'9',
'84',
'96'],
['81',
'80',
'83',
'83',
'56',
'46',
'84',
'81',
'64',
'45',
'52',
'31',
'60',
'30',
'61',
'97',
'81',
'50',
'48',
'51',
'44',
'96',
'12',
'23',
'52',
'42',
'81',
'10',
'26',
'69',
'37',
'76',
'78',
'86',
'34',
'73',
'S',
'97',
'59',
'99',
'85',
'96',
'80',
'52',
'41',
'16',
'92',
'28',
'18',
'19',
'80',
'70',
'71',
'3',
'63',
'41',
'59',
'83',
'5',
'3',
'72',
'40',
'15',
'75',
'27',
'56'],
['52',
'90',
'46',
'54',
'34',
'61',
'72',
'40',
'42',
'97',
'56',
'62',
'8',
'90',
'72',
'59',
'37',
'67',
'5',
'74',
'93',
'16',
'38',
'91',
'71',
'1',
'61',
'5',
'59',
'96',
'37',
'54',
'72',
'59',
'71',
'85',
'70',
'E',
'0',
'30',
'45',
'68',
'1',
'36',
'43',
'13',
'6',
'14',
'91',
'45',
'10',
'25',
'38',
'46',
'79',
'25',
'66',
'53',
'94',
'43',
'16',
'28',
'48',
'10',
'37',
'65'],
['1',
'30',
'24',
'32',
'76',
'13',
'51',
'44',
'65',
'61',
'26',
'91',
'9',
'96',
'39',
'35',
'34',
'50',
'89',
'68',
'80',
'78',
'58',
'14',
'57',
'31',
'1',
'47',
'72',
'42',
'75',
'60',
'70',
'16',
'54',
'67',
'71',
'0',
'g',
'49',
'10',
'87',
'70',
'89',
'86',
'94',
'95',
'52',
'39',
'74',
'1',
'89',
'15',
'28',
'51',
'94',
'65',
'38',
'54',
'63',
'29',
'88',
'69',
'46',
'33',
'10'],
['84',
'58',
'35',
'83',
'52',
'88',
'97',
'59',
'30',
'49',
'40',
'79',
'53',
'89',
'46',
'48',
'59',
'64',
'50',
'2',
'33',
'29',
'61',
'19',
'78',
'20',
'42',
'34',
'31',
'75',
'49',
'35',
'10',
'56',
'65',
'19',
'58',
'15',
'35',
'g',
'37',
'34',
'52',
'82',
'58',
'4',
'89',
'69',
'44',
'22',
'17',
'95',
'99',
'89',
'57',
'16',
'26',
'30',
'95',
'8',
'10',
'67',
'18',
'52',
'1',
'90'],
['81',
'26',
'39',
'84',
'11',
'69',
'31',
'6',
'13',
'2',
'52',
'20',
'59',
'54',
'75',
'81',
'98',
'66',
'8',
'29',
'41',
'41',
'98',
'49',
'82',
'79',
'45',
'38',
'96',
'78',
'71',
'53',
'84',
'20',
'50',
'32',
'38',
'52',
'16',
'99',
'0',
'45',
'64',
'51',
'19',
'69',
'85',
'95',
'34',
'94',
'75',
'28',
'43',
'66',
'34',
'33',
'19',
'63',
'60',
'26',
'30',
'54',
'93',
'92',
'45',
'81'],
['89',
'6',
'88',
'71',
'63',
'12',
'60',
'84',
'87',
'61',
'49',
'28',
'5',
'67',
'59',
'23',
'25',
'33',
'0',
'12',
'42',
'95',
'32',
'29',
'70',
'76',
'97',
'94',
'74',
'91',
'50',
'3',
'24',
'72',
'8',
'72',
'19',
'74',
'67',
'18',
'47',
'1',
'12',
'30',
'49',
'2',
'45',
'19',
'37',
'62',
'14',
'21',
'38',
'51',
'36',
'30',
'31',
'44',
'81',
'46',
'72',
'90',
'28',
'70',
'54',
'70'],
['29',
'52',
'73',
'76',
'18',
'24',
'25',
'59',
'90',
'9',
'70',
'75',
'17',
'18',
'66',
'4',
'62',
'87',
'32',
'76',
'30',
'28',
'70',
'2',
'74',
'56',
'5',
'35',
'49',
'20',
'37',
'40',
'18',
'80',
'90',
'53',
'22',
'76',
'87',
'32',
'20',
'85',
'8',
'14',
'17',
'15',
'69',
'94',
'79',
'81',
'96',
'3',
'85',
'42',
'80',
'26',
'92',
'46',
'47',
'98',
'56',
'78',
'56',
'59',
'91',
'36'],
['73',
'16',
'76',
'6',
'49',
'33',
'17',
'65',
'89',
'43',
'30',
'72',
'17',
'30',
'79',
'4',
'92',
'85',
'96',
'69',
'36',
'55',
'46',
'66',
'40',
'24',
'35',
'90',
'88',
'73',
'61',
'26',
'54',
'22',
'34',
'4',
'90',
'34',
'63',
'28',
'18',
'5',
'14',
'U',
'12',
'9',
'65',
'27',
'46',
'48',
'57',
'22',
'14',
'40',
'26',
'96',
'18',
'5',
'30',
'26',
'90',
'15',
'66',
'37',
'47',
'78'],
['56',
'55',
'90',
'8',
'59',
'81',
'80',
'95',
'67',
'73',
'73',
'46',
'11',
'91',
'24',
'33',
'67',
'70',
'37',
'56',
'55',
'60',
'70',
'58',
'22',
'70',
'4',
'25',
'15',
'27',
'77',
'88',
'40',
'6',
'15',
'23',
'52',
'55',
'56',
'23',
'0',
'49',
'65',
'45',
'B',
'47',
'67',
'6',
'55',
'39',
'86',
'75',
'96',
'98',
'50',
'31',
'78',
'93',
'56',
'65',
'23',
'94',
'96',
'15',
'31',
'63'],
['76',
'68',
'47',
'72',
'96',
'65',
'27',
'54',
'76',
'10',
'67',
'51',
'38',
'91',
'7',
'55',
'47',
'9',
'25',
'44',
'71',
'92',
'35',
'64',
'20',
'3',
'92',
'36',
'63',
'14',
'39',
'46',
'35',
'14',
'87',
'15',
'39',
'3',
'64',
'95',
'56',
'59',
'19',
'25',
'81',
'4',
'40',
'42',
'39',
'45',
'97',
'1',
'49',
'58',
'93',
'87',
'3',
'41',
'15',
'88',
'35',
'53',
'0',
'35',
'20',
'20'],
['16',
'19',
'51',
'42',
'81',
'49',
'35',
'83',
'36',
'63',
'76',
'70',
'49',
'79',
'11',
'35',
'71',
'71',
'31',
'34',
'4',
'71',
'9',
'24',
'35',
'28',
'39',
'56',
'24',
'2',
'17',
'72',
'73',
'41',
'92',
'16',
'18',
'9',
'53',
'6',
'18',
'10',
'65',
'34',
'79',
'79',
'_',
'50',
'72',
'80',
'28',
'47',
'52',
'7',
'27',
'46',
'0',
'6',
'29',
'91',
'47',
'92',
'94',
'47',
'37',
'75'],
['19',
'4',
'25',
'8',
'60',
'87',
'61',
'91',
'15',
'92',
'46',
'1',
'57',
'92',
'47',
'46',
'9',
'14',
'32',
'21',
'74',
'76',
'47',
'48',
'22',
'95',
'26',
'9',
'17',
'75',
'13',
'79',
'44',
'30',
'15',
'61',
'47',
'6',
'46',
'83',
'52',
'73',
'56',
'74',
'84',
'31',
'82',
'4',
'32',
'7',
'27',
'4',
'43',
'92',
'46',
'62',
'1',
'97',
'16',
'73',
'27',
'68',
'39',
'34',
'70',
'69'],
['24',
'85',
'23',
'49',
'54',
'18',
'90',
'36',
'33',
'73',
'98',
'19',
'16',
'67',
'44',
'12',
'72',
'89',
'85',
'9',
'71',
'9',
'98',
'81',
'34',
'77',
'60',
'10',
'91',
'93',
'63',
'22',
'69',
'63',
'13',
'75',
'6',
'29',
'52',
'23',
'45',
'98',
'55',
'23',
'37',
'66',
'91',
'11',
'x',
'66',
'86',
'0',
'37',
'12',
'44',
'16',
'67',
'93',
'34',
'5',
'69',
'70',
'23',
'40',
'36',
'99'],
['94',
'53',
'29',
'95',
'87',
'91',
'38',
'68',
'83',
'8',
'83',
'18',
'85',
'64',
'62',
'9',
'88',
'81',
'3',
'43',
'78',
'31',
'72',
'68',
'50',
'95',
'20',
'68',
'89',
'56',
'58',
'53',
'31',
'32',
'7',
'71',
'29',
'33',
'66',
'23',
'38',
'96',
'52',
'45',
'86',
'69',
'41',
'46',
'49',
's',
'87',
'33',
'40',
'52',
'13',
'19',
'89',
'56',
'96',
'97',
'40',
'66',
'10',
'51',
'56',
'19'],
['53',
'57',
'90',
'2',
'83',
'91',
'55',
'85',
'25',
'41',
'76',
'3',
'15',
'77',
'73',
'82',
'13',
'94',
'27',
'41',
'50',
'5',
'55',
'24',
'5',
'21',
'27',
'91',
'2',
'52',
'66',
'13',
'94',
'7',
'95',
'28',
'88',
'11',
'60',
'62',
'15',
'32',
'49',
'19',
'56',
'95',
'88',
'52',
'23',
'94',
'A',
'88',
'95',
'48',
'5',
'48',
'30',
'60',
'35',
'74',
'63',
'20',
'27',
'75',
'57',
'63'],
['6',
'49',
'57',
'86',
'37',
'12',
'65',
'80',
'16',
'9',
'38',
'89',
'50',
'30',
'66',
'89',
'65',
'66',
'39',
'33',
'59',
'40',
'10',
'16',
'98',
'34',
'20',
'83',
'71',
'34',
'7',
'83',
'80',
'27',
'11',
'43',
'94',
'92',
'10',
'69',
'6',
'23',
'90',
'19',
'22',
'18',
'51',
'11',
'39',
'61',
'1',
'J',
'47',
'95',
'41',
'61',
'74',
'83',
'59',
'70',
'35',
'30',
'6',
'43',
'74',
'59'],
['55',
'44',
'50',
'29',
'44',
'62',
'9',
'38',
'9',
'68',
'74',
'59',
'49',
'45',
'8',
'35',
'40',
'94',
'50',
'92',
'26',
'44',
'59',
'5',
'63',
'14',
'95',
'20',
'72',
'62',
'82',
'51',
'23',
'83',
'34',
'33',
'39',
'63',
'13',
'69',
'58',
'85',
'45',
'71',
'38',
'6',
'97',
'76',
'19',
'57',
'93',
'25',
'J',
'38',
'9',
'86',
'27',
'88',
'67',
'40',
'33',
'2',
'55',
'74',
'74',
'32'],
['95',
'30',
'9',
'12',
'70',
'67',
'94',
'79',
'84',
'72',
'6',
'98',
'47',
'67',
'66',
'25',
'72',
'28',
'73',
'44',
'87',
'85',
'25',
'53',
'53',
'61',
'46',
'67',
'87',
'88',
'46',
'63',
'91',
'68',
'40',
'96',
'54',
'76',
'95',
'60',
'37',
'13',
'58',
'13',
'30',
'51',
'11',
'86',
'87',
'36',
'90',
'45',
'29',
'5',
'3',
'43',
'33',
'19',
'1',
'25',
'76',
'90',
'75',
'55',
'53',
'60'],
['40',
'82',
'59',
'48',
'63',
'75',
'65',
'18',
'29',
'8',
'89',
'1',
'23',
'13',
'64',
'63',
'15',
'91',
'97',
'33',
'86',
'57',
'47',
'45',
'96',
'73',
'96',
'5',
'35',
'41',
'90',
'6',
'68',
'73',
'23',
'25',
'24',
'25',
'64',
'8',
'25',
'20',
'48',
'22',
'93',
'7',
'59',
'29',
'87',
'17',
'33',
'48',
'16',
'91',
'T',
'19',
'2',
'23',
'56',
'77',
'23',
'99',
'12',
'37',
'55',
'60'],
['88',
'38',
'20',
'30',
'1',
'77',
'19',
'42',
'95',
'70',
'70',
'14',
'27',
'96',
'5',
'11',
'85',
'83',
'91',
'0',
'88',
'11',
'94',
'80',
'42',
'87',
'94',
'73',
'44',
'62',
'74',
'10',
'5',
'29',
'18',
'43',
'62',
'11',
'11',
'61',
'77',
'68',
'90',
'63',
'83',
'58',
'41',
'41',
'96',
'61',
'57',
'35',
'21',
'47',
'4',
'd',
'11',
'40',
'23',
'58',
'94',
'64',
'94',
'6',
'92',
'51'],
['72',
'92',
'11',
'92',
'62',
'13',
'10',
'56',
'70',
'89',
'16',
'27',
'53',
'26',
'91',
'34',
'32',
'34',
'42',
'75',
'47',
'59',
'23',
'23',
'34',
'17',
'20',
'7',
'98',
'30',
'64',
'40',
'98',
'77',
'74',
'39',
'75',
'94',
'55',
'46',
'32',
'96',
'33',
'22',
'46',
'80',
'30',
'71',
'41',
'14',
'49',
'40',
'66',
'84',
'40',
'4',
'z',
'20',
'52',
'73',
'40',
'29',
'52',
'19',
'29',
'1'],
['80',
'55',
'68',
'59',
'49',
'84',
'54',
'59',
'48',
'63',
'67',
'53',
'80',
'75',
'68',
'6',
'33',
'33',
'4',
'67',
'82',
'7',
'99',
'94',
'57',
'42',
'7',
'77',
'70',
'40',
'57',
'57',
'40',
'41',
'51',
'85',
'87',
'29',
'96',
'56',
'11',
'6',
'48',
'63',
'10',
'39',
'90',
'68',
'34',
'38',
'0',
'90',
'41',
'78',
'16',
'19',
'66',
'r',
'30',
'58',
'37',
'89',
'61',
'61',
'76',
'45'],
['70',
'9',
'52',
'79',
'19',
'98',
'74',
'11',
'15',
'51',
'17',
'39',
'81',
'41',
'32',
'28',
'35',
'53',
'23',
'18',
'60',
'84',
'39',
'27',
'95',
'68',
'2',
'47',
'51',
'43',
'46',
'39',
'17',
'41',
'98',
'15',
'34',
'76',
'75',
'7',
'1',
'96',
'74',
'90',
'49',
'73',
'15',
'46',
'42',
'40',
'75',
'55',
'77',
'53',
'2',
'35',
'46',
'4',
'h',
'51',
'11',
'74',
'13',
'47',
'81',
'36'],
['75',
'12',
'2',
'58',
'16',
'45',
'26',
'1',
'48',
'74',
'27',
'73',
'65',
'93',
'75',
'94',
'0',
'98',
'66',
'26',
'11',
'0',
'21',
'63',
'36',
'0',
'60',
'94',
'54',
'78',
'33',
'19',
'13',
'26',
'48',
'66',
'27',
'39',
'4',
'27',
'96',
'19',
'32',
'7',
'24',
'51',
'85',
'36',
'15',
'46',
'28',
'64',
'40',
'72',
'28',
'80',
'35',
'90',
'2',
'm',
'99',
'91',
'70',
'47',
'85',
'49'],
['68',
'16',
'0',
'31',
'44',
'34',
'85',
'12',
'53',
'43',
'59',
'51',
'10',
'42',
'91',
'42',
'92',
'19',
'3',
'73',
'15',
'33',
'94',
'50',
'81',
'97',
'66',
'11',
'52',
'87',
'26',
'36',
'24',
'92',
'26',
'2',
'83',
'64',
'12',
'12',
'64',
'76',
'41',
'14',
'18',
'95',
'46',
'8',
'7',
'41',
'37',
'34',
'20',
'47',
'93',
'21',
'90',
'26',
'8',
'80',
'X',
'90',
'84',
'53',
'80',
'1'],
['70',
'15',
'70',
'62',
'65',
'32',
'53',
'3',
'22',
'57',
'86',
'74',
'61',
'89',
'96',
'40',
'27',
'32',
'12',
'70',
'66',
'57',
'4',
'93',
'57',
'69',
'36',
'86',
'38',
'99',
'3',
'45',
'42',
'78',
'61',
'44',
'88',
'61',
'61',
'82',
'26',
'25',
'53',
'59',
'53',
'54',
'59',
'51',
'17',
'95',
'24',
'22',
'69',
'19',
'36',
'3',
'91',
'87',
'85',
'40',
'13',
'i',
'60',
'44',
'35',
'92'],
['29',
'65',
'93',
'3',
'73',
'70',
'63',
'28',
'44',
'87',
'91',
'97',
'56',
'71',
'91',
'85',
'16',
'68',
'96',
'70',
'93',
'61',
'62',
'13',
'59',
'31',
'26',
'10',
'61',
'67',
'97',
'10',
'82',
'88',
'32',
'45',
'15',
'94',
'98',
'21',
'71',
'86',
'92',
'84',
'0',
'62',
'47',
'19',
'59',
'53',
'79',
'42',
'16',
'32',
'55',
'66',
'79',
'39',
'52',
'27',
'84',
'44',
'p',
'84',
'49',
'78'],
['77',
'98',
'39',
'6',
'26',
'16',
'86',
'11',
'24',
'88',
'39',
'39',
'76',
'67',
'51',
'68',
'52',
'69',
'72',
'89',
'49',
'70',
'73',
'35',
'83',
'31',
'73',
'17',
'80',
'66',
'89',
'76',
'1',
'31',
'6',
'84',
'28',
'24',
'86',
'39',
'16',
'14',
'78',
'87',
'44',
'81',
'62',
'82',
'23',
'96',
'76',
'60',
'58',
'39',
'42',
'74',
'95',
'19',
'99',
'16',
'2',
'71',
'32',
'r',
'30',
'65'],
['52',
'38',
'49',
'63',
'33',
'37',
'18',
'60',
'99',
'27',
'47',
'0',
'32',
'42',
'86',
'28',
'93',
'26',
'26',
'88',
'60',
'44',
'38',
'95',
'2',
'27',
'81',
'3',
'24',
'69',
'3',
'49',
'5',
'82',
'7',
'94',
'52',
'55',
'28',
'77',
'98',
'8',
'20',
'90',
'46',
'20',
'39',
'16',
'30',
'13',
'94',
'9',
'58',
'83',
'7',
'73',
'17',
'33',
'71',
'60',
'50',
'84',
'14',
'64',
'4',
'23'],
['51',
'70',
'63',
'34',
'84',
'97',
'80',
'31',
'41',
'82',
'15',
'35',
'93',
'25',
'62',
'31',
'87',
'18',
'28',
'74',
'4',
'80',
'87',
'97',
'9',
'78',
'40',
'56',
'43',
'28',
'12',
'25',
'32',
'94',
'41',
'95',
'26',
'76',
'86',
'94',
'88',
'71',
'72',
'72',
'15',
'93',
'1',
'47',
'55',
'41',
'12',
'23',
'23',
'46',
'99',
'77',
'63',
'12',
'18',
'63',
'55',
'2',
'0',
'58',
'25',
'Q']]
data_lines[0][0] + data_lines[1][1] + data_lines[2][2] + data_lines[3][3]
'http'
len(data_lines)
66
str = ''
for row_num, data in enumerate(data_lines):
#print('row_num:', row_num)
#print('data:', data)
str = str + data[row_num]
str
'https://drive.google.com/open?id=1G6SEgg018UB4_4xsAJJ5TdzrhmXipr4Q'
Task Two: Download the PDF from the Google Drive link and find the phone number that is in the document.
223.223.2334
r'\d{3}.\d{3}.\d{4}'
from google_drive_downloader import GoogleDriveDownloader as gdd
gdd.download_file_from_google_drive(file_id='1G6SEgg018UB4_4xsAJJ5TdzrhmXipr4Q',dest_path='./testpdf.pdf')
Downloading 1G6SEgg018UB4_4xsAJJ5TdzrhmXipr4Q into ./testpdf.pdf... Done.
import PyPDF2
f = open('testpdf.pdf','rb')
pdf_reader = PyPDF2.PdfFileReader(f)
pdf_reader.numPages
17
page = pdf_reader.getPage(0)
Info = page.extractText()
Message = pdf_reader.getPage(0).extractText()
#print(Message)
import re
pattern = r'\d{3}.\d{3}.\d{4}'
text = ''
for i in range(pdf_reader.numPages):
Message = pdf_reader.getPage(i).extractText()
text = text + ' ' + Message
#print(text)
re.findall(pattern, text)
['505.503.4455']
pattern = r'\d{3}'
list(re.finditer(pattern, text))
[<re.Match object; span=(655, 658), match='000'>,
<re.Match object; span=(17805, 17808), match='000'>,
<re.Match object; span=(35059, 35062), match='000'>,
<re.Match object; span=(41808, 41811), match='505'>,
<re.Match object; span=(41812, 41815), match='503'>,
<re.Match object; span=(41816, 41819), match='445'>]
re.findall(pattern, text)
['000', '000', '000', '505', '503', '445']
re.search(pattern, text)
<re.Match object; span=(655, 658), match='000'>
f.close()