Python 3 presidents list
Using python 3 I need help writing a program that will read presidents.txt
Each line in this file has four pieces of information, separated by tabs.
Last name t First name t Date took office t Date left office n
The basic task for this lab is to read through the data file, and create an output file which will contain sentences with the information read from the data file. For example, the first line of the file is:
LincolntAbrahamt3/4/1861t4/15/1865n
The four pieces of information are:
Lincoln
Abraham
3/4/1861
4/15/1865
The output sentence for this data is:
Abraham Lincoln was president from 3/4/1861 to 4/15/1865.
Input file:
keep in mind this may display inappropriatelyas it may not format properly on this site and in actuality the code in the .txt is similar to the below example:
Buchanan(tab)James(tab)3/4/1857(tab)3/4/1861(n)
input file:
Lincoln Abraham 3/4/1861 4/15/1865 Jackson Andrew 3/4/1829 3/4/1837 Johnson Andrew 4/15/1865 3/4/1869 Obama Barack 1/20/2009 incumbant Harrison Benjamin 3/4/1889 3/4/1893 Clinton Bill 1/20/1993 1/20/2001 Coolidge Calvin 8/2/1923 3/4/1929 Arthur Chester A 9/19/1881 3/4/1885 Eisenhower Dwight D 1/20/1953 1/20/1961 Pierce Franklin 3/4/1853 3/4/1857 Roosevelt Franklin D 3/4/1933 4/12/1945 Washington George 4/30/1789 3/4/1797 Bush George H W 1/20/1989 1/20/1993 Bush George W 1/20/2001 1/20/2009 Ford Gerald 8/9/1974 1/20/1977 Cleveland Grover 3/4/1885 3/4/1889 Cleveland Grover 3/4/1893 3/4/1897 Truman Harry S 4/12/1945 1/20/1953 Hoover Herbert 3/4/1929 3/4/1933 Madison James 3/4/1809 3/4/1817 Monroe James 3/4/1817 3/4/1825 Buchanan James 3/4/1857 3/4/1861 Garfield James A 3/4/1881 9/19/1881 Polk James K 3/4/1845 3/4/1849 Carter Jimmy 1/20/1977 1/20/1981 Adams John 3/4/1797 3/4/1801 Tyler John 4/4/1841 3/4/1845 Kennedy John F 1/20/1961 11/22/1963 Adams John Quincy 3/4/1825 3/4/1829 Johnson Lyndon B 11/22/1963 1/20/1969 Van Buren Martin 3/4/1837 3/4/1841 Fillmore Millard 7/9/1850 3/4/1853 Nixon Richard M 1/20/1969 8/9/1974 Reagan Ronald 1/20/1981 1/20/1989 Hayes Rutherford B 3/4/1877 3/4/1881 Roosevelt Theodore 9/14/1901 3/4/1909 Jefferson Thomas 3/4/1801 3/4/1809 Grant Ulysses S 3/4/1869 3/4/1877 Harding Warren G 3/4/1921 8/2/1923 McKinley William 3/4/1897 9/14/1901 Harrison William Henry 3/4/1841 4/4/1841 Taft William Howard 3/4/1909 3/4/1913 Wilson Woodrow 3/4/1913 3/4/1921 Taylor Zachary 3/4/1849 7/9/1850
The first output file needs to be named same_order.txt, thus far my pseudo code is:
open the input file
open the output file
for each line in the input file:
call your function to write out the sentence
close the input file
close the output file
with an output of:
Abraham Lincoln was president from 3/4/1861 to 4/15/1865.
Andrew Jackson was president from 3/4/1829 to 3/4/1837.
Andrew Johnson was president from 4/15/1865 to 3/4/1869.
the second output file needs to be named last_name.txt and have an output like this:
John Adams was president from 3/4/1797 to 3/4/1801.
John Quincy Adams was president from 3/4/1825 to 3/4/1829.
Chester A Arthur was president from 9/19/1881 to 3/4/1885.
In the cases where the last names are the same, the Johnsons, the Adams’s, and the Bushes, sort by first name
The third and final output file needs to be named inauguration.txt with an output that looks like this:
George Washington was president from 4/30/1789 to 3/4/1797.
John Adams was president from 3/4/1797 to 3/4/1801.
Thomas Jefferson was president from 3/4/1801 to 3/4/1809.
for both William Henry Harrison and James A Garfield who served less than one year as president. I should include the month that the president took office as the order of data, not just the year.
And mainly trying to keep the data ordered within code, rather than trying to rearrange the input data file
Expert Answer
1. Open file 2. Read eachline 3.split it in words 4.Process each arrray as the above sentence. 4. Write to the file back ## please not I still need to sort by Year### 1.put "data.txt" in the path where you run the python filr
2.data.txt will have the above lines which needs to be parsed.
--------------------------Python Program-------------- def makeSentence(wordline): tot = len(wordline) fname = "" if wordline: for nameword in wordline[1:(tot-2)]: fname += nameword + " " president_name = fname + " " + wordline[0] year_servered = wordline[-2] + " to " + wordline[-1] Sentence = "{president} was president from {years} n".format(president=president_name,years=year_servered) fileptr.write(Sentence) return Sentence def process(singleline): words = singleline.split() #print(lastname) newsent = makeSentence(words) return newsent ## Start from here fileptr = open('output.txt','w') with open("data.txt") as filereader: newline = "" for eachline in filereader: newline = process(eachline) ===============================Attached output.txt=======
Abraham Lincoln was president from 3/4/1861 to 4/15/1865 Andrew Jackson was president from 3/4/1829 to 3/4/1837 Andrew Johnson was president from 4/15/1865 to 3/4/1869 Barack Obama was president from 1/20/2009 to incumbant Benjamin Harrison was president from 3/4/1889 to 3/4/1893 Bill Clinton was president from 1/20/1993 to 1/20/2001 Calvin Coolidge was president from 8/2/1923 to 3/4/1929 Chester A Arthur was president from 9/19/1881 to 3/4/1885 Dwight D Eisenhower was president from 1/20/1953 to 1/20/1961 Franklin Pierce was president from 3/4/1853 to 3/4/1857 Franklin D Roosevelt was president from 3/4/1933 to 4/12/1945 George Washington was president from 4/30/1789 to 3/4/1797 George H W Bush was president from 1/20/1989 to 1/20/1993 George W Bush was president from 1/20/2001 to 1/20/2009 Gerald Ford was president from 8/9/1974 to 1/20/1977 Grover Cleveland was president from 3/4/1885 to 3/4/1889 Grover Cleveland was president from 3/4/1893 to 3/4/1897 Harry S Truman was president from 4/12/1945 to 1/20/1953 Herbert Hoover was president from 3/4/1929 to 3/4/1933 James Madison was president from 3/4/1809 to 3/4/1817 James Monroe was president from 3/4/1817 to 3/4/1825 James Buchanan was president from 3/4/1857 to 3/4/1861 James A Garfield was president from 3/4/1881 to 9/19/1881 James K Polk was president from 3/4/1845 to 3/4/1849 Jimmy Carter was president from 1/20/1977 to 1/20/1981 John Adams was president from 3/4/1797 to 3/4/1801 John Tyler was president from 4/4/1841 to 3/4/1845 John F Kennedy was president from 1/20/1961 to 11/22/1963 John Quincy Adams was president from 3/4/1825 to 3/4/1829 Lyndon B Johnson was president from 11/22/1963 to 1/20/1969 Buren Martin Van was president from 3/4/1837 to 3/4/1841 Millard Fillmore was president from 7/9/1850 to 3/4/1853 Richard M Nixon was president from 1/20/1969 to 8/9/1974 Ronald Reagan was president from 1/20/1981 to 1/20/1989 Rutherford B Hayes was president from 3/4/1877 to 3/4/1881 Theodore Roosevelt was president from 9/14/1901 to 3/4/1909 Thomas Jefferson was president from 3/4/1801 to 3/4/1809 Ulysses S Grant was president from 3/4/1869 to 3/4/1877 Warren G Harding was president from 3/4/1921 to 8/2/1923 William McKinley was president from 3/4/1897 to 9/14/1901 William Henry Harrison was president from 3/4/1841 to 4/4/1841 William Howard Taft was president from 3/4/1909 to 3/4/1913 Woodrow Wilson was president from 3/4/1913 to 3/4/1921 Zachary Taylor was president from 3/4/1849 to 7/9/1850