[Tutor] Help with printing to text file
Joel Goldstick
joel.goldstick at gmail.com
Mon Feb 1 15:45:31 EST 2016
On Mon, Feb 1, 2016 at 9:07 AM, Chelsea G <cegarcia0323 at gmail.com> wrote:
> Hi,
>
> So I am trying to get my function search to print in a text file, but I
> can only get it to print to Powershell. I have tried several things to get
> it to print in its own text file but nothing I have tried is working. Can
> someone tell me what I am doing wrong?
>
> import csvimport sysimport jsonfrom collections import defaultdictfrom
> collections import Counter
> data = defaultdict(list)
> mydict = defaultdict(list)
> class dictionary:
> def __init__(self):
> self.dict = defaultdict(list)
> self.counted_dict = defaultdict(list)
> self.grouped_dict = defaultdict(list)
> self.other_dict = defaultdict(list)
> self.final_dict = defaultdict(list)
> self.total_dict = defaultdict(list)
> self.search_dict = defaultdict(list)
>
>
> def populate_dict(self, filename):
> with open('weekly_test.csv', 'rb') as f:
> reader = csv.reader(f)
> next(reader, None)
> for row in reader:
> self.dict[row[2]].append(row[3])
>
>
> def total_counts(self):
> for key in self.dict.keys():
> total = 0
> b = Counter(self.dict[key])
> for value in b:
> total += b[value]
> self.total_dict.update({key: str(total)})
>
> def all_counts(self):
> data_count = Counter()
> for key in self.dict.keys():
> self.counted_dict.update({key:
> Counter(self.dict[key])})
>
>
> def grouped_counts(self):
> for key in self.dict.keys():
> total = 0
> c = Counter(self.dict[key])
> for value in c:
> if c[value] >= 5:
> self.grouped_dict.update({value:
> key + ': ' + str(c[value])})
>
> elif c[value] <= 4:
>
> total += c[value]
> self.other_dict.update({key:
> 'other: ' + str(total)})
>
> self.final_dict = self.grouped_dict,
> self.other_dict, self.total_dict
>
> def json_output(self):
> with open ('weekly2.txt', 'w') as text_file:
> json.dump(self.final_dict, text_file, sort_keys =
> True, indent = 4)
>
> def search(self, filename):
> with open('weekly_test.csv', 'r') as searchfile:
> for line in searchfile:
> if 'PBI 43125' in line:
> print line
>
i'm guessing above prints
> with open('testdoc.txt', 'w') as text_file
> text_file = searchfile
>
try something like this:
> def search(self, filename):
> with open('weekly_test.csv', 'r') as searchfile:
> with open('testdoc.txt', 'w') as text_file
> for line in searchfile:
> if 'PBI 43125' in line:
> text_file.write(line + '\n'
_______________________________________________
> Tutor maillist - Tutor at python.org
> To unsubscribe or change subscription options:
> https://mail.python.org/mailman/listinfo/tutor
>
--
Joel Goldstick
http://joelgoldstick.com/stats/birthdays
More information about the Tutor
mailing list