Re: Howw to prevent the duplication of any value in a column within a CSV file (python)

2016-04-27 Thread darnold via Python-list

potential_passengers = ['bob','john','sue','wendy','chris','bob','jen','wendy']
accepted_passengers = set()

for name in potential_passengers:
print('checking on {}...'.format(name))
if name not in accepted_passengers:
accepted_passengers.add(name)
print('welcome aboard, {}!'.format(name))
else:
print('i am sorry, we have already accepted a {}.'.format(name))
print()


HTH,
Don 
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: How may I learn Python Web Frameworks

2015-07-24 Thread darnold via Python-list
you'll find a very extensive Flask tutorial at 
http://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world .
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Looking for direction

2015-05-20 Thread darnold via Python-list
I recommend getting your hands on Automate The Boring Stuff With Python from 
no starch press:

http://www.nostarch.com/automatestuff

I've not read it in its entirety, but it's very beginner-friendly and is 
targeted at just the sort of processing you appear to be doing.

HTH,
Don
-- 
https://mail.python.org/mailman/listinfo/python-list


Re: Running Python programmes

2013-10-29 Thread darnold
Maybe you're inadvertently running Python with either the '-i' switch or with 
the PYTHONINSPECT environment variable set? 
When you do that, your script will launch an interactive prompt after it 
completes.
 

C:\Python27echo print hello  hello.py

C:\Python27python hello.py
hello

C:\Python27python -i hello.py
hello

 ^Z


C:\Python27set PYTHONINSPECT=1

C:\Python27python hello.py
hello

 ^Z

-- 
https://mail.python.org/mailman/listinfo/python-list


Re: a couple of things I don't understand wrt lists

2013-04-17 Thread darnold
On Apr 17, 5:25 am, aaB mecagonoisic...@gmail.com wrote:

 - the complement thing:
 I haven't yet tried to reproduce this, but I will, and I will post back if I 
 see
 this happening again, this time with a real log of python's interactive 
 console,
 or a complete script which people can use.


That was happening when you incorrectly used bit as an index back into
bitpattern.
When you do that, the behavior actually changes depending on the value
of bitpattern:

a bitpattern that starts with [1, 0, ...] will yield its complement:

 bitpattern = [1, 0, 0, 1, 1, 0, 1]
 for bit in bitpattern:
print 'bitpattern[%s] : %s' % (bit, bitpattern[bit])


bitpattern[1] : 0
bitpattern[0] : 1
bitpattern[0] : 1
bitpattern[1] : 0
bitpattern[1] : 0
bitpattern[0] : 1
bitpattern[1] : 0


while a bitpattern that starts with [0, 1, ...] will yield the
expected results:

 bitpattern = [0, 1, 0, 1, 1, 0, 1]
 for bit in bitpattern:
print 'bitpattern[%s] : %s' % (bit, bitpattern[bit])


bitpattern[0] : 0
bitpattern[1] : 1
bitpattern[0] : 0
bitpattern[1] : 1
bitpattern[1] : 1
bitpattern[0] : 0
bitpattern[1] : 1


HTH,
Don



-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Parsing soap result

2013-04-17 Thread darnold
On Apr 17, 8:50 am, Ombongi Moraa Fe moraa.lovetak...@gmail.com
wrote:

 how do I use xml.etree.ElementTree to print the parameters address and
 deliveryStatus? Or is there a better python method?



I'm sure there are prettier ways to do this, but you can use XPath
syntax to find all of your ns1:result nodes and loop through them:

 import xml.etree.ElementTree as ET
 myXML = '''\
?xml version=1.0 encoding=utf-8 ?
soapenv:Envelope xmlns:soapenv=http://schemas.xmlsoap.org/soap/
envelope/ xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance;
soapenv:Body
ns1:gere xmlns:ns1=http://www.csapi.org/schema/parlayx/sms/send/v2_2/
local
ns1:result
address254727/address
deliveryStatusDeliveredToNetwork/deliveryStatus
/ns1:result
/ns1:gere
/soapenv:Body
/soapenv:Envelope
'''
 myNamespaces=dict(ns1=http://www.csapi.org/schema/parlayx/sms/send/v2_2/local,soapenv=http://schemas.xmlsoap.org/soap/envelope/;)
 root = ET.fromstring(myXML)
 for result in root.findall('.//ns1:result',namespaces=myNamespaces):
address = result.find('address').text
deliveryStatus = result.find('deliveryStatus').text
print address: %s, deliveryStatus: %s % (address,deliveryStatus)


address: 254727, deliveryStatus: DeliveredToNetwork


HTH,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Parsing soap result

2013-04-17 Thread darnold
On Apr 17, 1:05 pm, Christian Heimes christ...@python.org wrote:
 Am 17.04.2013 19:55, schrieb darnold:

  On Apr 17, 8:50 am, Ombongi Moraa Fe moraa.lovetak...@gmail.com
  wrote:

  how do I use xml.etree.ElementTree to print the parameters address and
  deliveryStatus? Or is there a better python method?

  I'm sure there are prettier ways to do this, but you can use XPath
  syntax to find all of your ns1:result nodes and loop through them:

 You want all {http://www.csapi.org/schema/parlayx/sms/send/v2_2/
 local}result tags. The prefix isn't fixed.

I'm sorry, but I'm not understanding the difference.
By specifying:

 myNamespaces=dict(ns1=http://www.csapi.org/schema/parlayx/sms/send/v2_2/local;)

Isn't this:

 for result in root.findall('.//ns1:result',namespaces=myNamespaces):

equivalent to:

 for result in 
 root.findall('.//{http://www.csapi.org/schema/parlayx/sms/send/v2_2/local}result'):

?

Or am I misunderstanding? Is there a namespace-agnostic way of doing
this?
Admittedly, I haven't used ElementTree or XPath much prior to toying
with them to (attempt to) answer the OP's question.

Thanks for your patience,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Python log parser

2013-04-05 Thread darnold
i know literally nothing about syslogs, but a google search for
python syslog parser shows that some people have had success using
the pyparsing module:

http://www.j-schmitz.net/blog/how-to-parse-a-syslog-logfile-in-python
https://gist.github.com/leandrosilva/3651640

hth,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Issue with my code

2013-02-05 Thread darnold
On Feb 5, 2:19 pm, maiden129 sengokubasarafe...@gmail.com wrote:
 How to reverse the two loops?


s=input(Enter a string, eg(4856w23874): )

checkS=['0','1','2','3','4','5','6','7','8','9']

for digit in checkS:
t = s.count(digit)
if t == 0:
pass
elif t == 1:
print(digit,occurs 1 time.)
else:
print(digit, occurs, t,times.)



Enter a string, eg(4856w23874): 23493049weee2039412367
0 occurs 2 times.
1 occurs 1 time.
2 occurs 3 times.
3 occurs 4 times.
4 occurs 3 times.
6 occurs 1 time.
7 occurs 1 time.
9 occurs 3 times.


HTH,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Issue with my code

2013-02-05 Thread darnold
On Feb 5, 4:05 pm, marduk mar...@python.net wrote:

 Although that implementation also scans the string 10 times (s.count()),
 which may not be as efficient (although it is happening in C, so perhaps
 not).

 A better solution involves only scanning the string once.

agreed. i was specifically showing how to reverse the loop.
using the much-better-suited Counter class:


from collections import Counter

s=input(Enter a string, eg(4856w23874): )

checkS=['0','1','2','3','4','5','6','7','8','9']

cnt = Counter()

for char in s:
cnt[char] += 1

for char, tally in sorted(cnt.items()):
if char in checkS and tally  0:
if tally == 1:
print(char,occurs 1 time.)
else:
print(char, occurs, tally,times.)


Enter a string, eg(4856w23874): 192398209asdfbc12903348955
0 occurs 2 times.
1 occurs 2 times.
2 occurs 3 times.
3 occurs 3 times.
4 occurs 1 time.
5 occurs 2 times.
8 occurs 2 times.
9 occurs 5 times.


HTH,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Searching through two logfiles in parallel?

2013-01-08 Thread darnold
i don't think in iterators (yet), so this is a bit wordy.
same basic idea, though: for each message (set of parameters), build a
list of transactions consisting of matching send/receive times.

mildly tested:


from datetime import datetime, timedelta

sendData = '''\
05:00:06 Message sent - Value A: 5.6, Value B: 6.2, Value C: 9.9
05:00:08 Message sent - Value A: 3.3, Value B: 4.3, Value C: 2.3
05:00:10 Message sent - Value A: 3.0, Value B: 0.4, Value C: 5.4
#orphan
05:00:14 Message sent - Value A: 1.0, Value B: 0.4, Value C: 5.4
07:00:14 Message sent - Value A: 1.0, Value B: 0.4, Value C: 5.4
'''

receiveData = '''\
05:00:09 Message received - Value A: 5.6, Value B: 6.2, Value C:
9.9
05:00:12 Message received - Value A: 3.3, Value B: 4.3, Value C:
2.3
05:00:15 Message received - Value A: 1.0, Value B: 0.4, Value C:
5.4
07:00:18 Message received - Value A: 1.0, Value B: 0.4, Value C:
5.4
07:00:30 Message received - Value A: 1.0, Value B: 0.4, Value C:
5.4   #orphan
07:00:30 Message received - Value A: 17.0, Value B: 0.4, Value C:
5.4  #orphan
'''

def parse(line):
timestamp, rest = line.split(' Message ')
action, params = rest.split(' - ' )
params = params.split('#')[0]
return timestamp.strip(), params.strip()

def isMatch(sendTime,receiveTime,maxDelta):
if sendTime is None:
return False

sendDT = datetime.strptime(sendTime,'%H:%M:%S')
receiveDT = datetime.strptime(receiveTime,'%H:%M:%S')
return receiveDT - sendDT = maxDelta

results = {}

for line in sendData.split('\n'):
if not line.strip():
continue

timestamp, params = parse(line)
if params not in results:
results[params] = [{'sendTime': timestamp, 'receiveTime':
None}]
else:
results[params].append({'sendTime': timestamp, 'receiveTime':
None})

for line in receiveData.split('\n'):
if not line.strip():
continue

timestamp, params = parse(line)
if params not in results:
results[params] = [{'sendTime': None, 'receiveTime':
timestamp}]
else:
for tranNum, transaction in enumerate(results[params]):
if
isMatch(transaction['sendTime'],timestamp,timedelta(seconds=5)):
results[params][tranNum]['receiveTime'] = timestamp
break
else:
results[params].append({'sendTime': None, 'receiveTime':
timestamp})

for params in sorted(results):
print params
for transaction in results[params]:
print '\t%s' % transaction


  RESTART 

Value A: 1.0, Value B: 0.4, Value C: 5.4
{'sendTime': '05:00:14', 'receiveTime': '05:00:15'}
{'sendTime': '07:00:14', 'receiveTime': '07:00:18'}
{'sendTime': None, 'receiveTime': '07:00:30'}
Value A: 17.0, Value B: 0.4, Value C: 5.4
{'sendTime': None, 'receiveTime': '07:00:30'}
Value A: 3.0, Value B: 0.4, Value C: 5.4
{'sendTime': '05:00:10', 'receiveTime': None}
Value A: 3.3, Value B: 4.3, Value C: 2.3
{'sendTime': '05:00:08', 'receiveTime': '05:00:12'}
Value A: 5.6, Value B: 6.2, Value C: 9.9
{'sendTime': '05:00:06', 'receiveTime': '05:00:09'}


HTH,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Trying to make a basic Python score counter in a game... will not count.

2012-12-17 Thread darnold
On Dec 16, 12:38 pm, tbg darrienglas...@gmail.com wrote:
 Nice, will have to try it out...

if you're interested in learning Python and/or game programming in
Python, you might want to take a look at http://inventwithpython.com/
.

HTH,
Don
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: SQLAlchemy: How to do Table Reflection and MySQL?

2012-10-22 Thread darnold
On Oct 20, 6:24 pm, Nick Sabalausky
seewebsitetocontac...@semitwist.com wrote:
 Hi, I'm fairly new to Python, and I'm trying to figure out how to use
 SQLAlchemy to connect to a MySQL DB and use table reflection to set up
 SQLAlchemy's tables. But the  SQLAlchemy documentation is gigantic and
 frankly kinda making my head spin, so I'm having trouble even finding
 any information on how to use its table reflection, mostly just that it
 exists and *can* be done, but not so much how. My web searching has
 just been turning up examples of SQLite and manually describing the
 tables in Python and having SQLAlchemy create the tables, which isn't
 what I'm looking for.

 Is there a simple way to do this somehow? To just connect to a MySQL DB
 and use table reflection?

i'm not brave enough to dig too deeply into SQLAlchemy, but maybe this
will help? :

http://kashififtikhar.blogspot.com/2010/07/using-sqlalchemy-reflection-with-pylons.html

that came up from googling sqlalchemy table reflection tutorial.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: which book?

2012-05-14 Thread darnold
On May 10, 4:58 am, d.po...@gmail.com wrote:
 On Wednesday, May 9, 2012 7:13:54 AM UTC-7, Miki Tebeka wrote:
   I am going to learn python for some plot issues. which book or sources, 
   do you recommend please?
  The tutorial is pretty good if you already know how to program.
  I also heard a lot of good things on Python Essential Reference.

 Thanks.
 Could you please pass the line for tutorial?

i believe that would be the tutorial at http://docs.python.org/tutorial/
.
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: test for list equality

2011-12-15 Thread darnold
On Dec 15, 11:59 am, Miki Tebeka miki.teb...@gmail.com wrote:
  My sort issue... as in this doesn't work
   if x.sort == y.sort:

 You're missing the () to make it a function call.
 Also list.sort() returns none, it mutates the original list.
 You can either
     sorted(x) == sorted(y)
 or
     set(x) == set(y)

I'm pretty sure we don't want to use set() since it throws away
duplicates:

 x = [1,2,3,4]
 y = [1,1,2,2,3,3,4]
 sorted(x) == sorted(y)
False
 set(x) == set(y)
True
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: Methods on file-like objects can only used once on one object?

2011-08-23 Thread darnold
On Aug 23, 9:21 am, Yingjie Lin yingjie@mssm.edu wrote:
 Hi Python users,

 I just realize that my post yesterday shouldn't be specifically for 
 mechanize. It should be a general question for file-like objects.

  f = open('my_file.txt')
  print f.readlines()

         ( prints a list of strings print f.readlines()

 []

 There are quite a few methods for file-like objects that can only be used 
 once on one object. If I prefer to use some of these methods on one object, 
 one after another, like:

 f.readlines()
 f.read()
 ...

 What should I do? Thank you.

 - Yingjie

Each of those calls consumes the entire file, leaving the file pointer
at end-of-file. to reset the file pointer back to the beginning of the
file and enable re-reading, use f.seek(0) .
-- 
http://mail.python.org/mailman/listinfo/python-list


Re: split long string in two code lines

2011-06-13 Thread darnold
print this \
 is \
 a \
 test \

  RESTART 

this is a test
-- 
http://mail.python.org/mailman/listinfo/python-list