B
Bruno Desthuilliers
Oltmans a écrit :
This will lookup for MyFile.txt in the system's current working
directory - which is not necessarily in the script's directory.
this shadows the builtin's 'file' symbol.
'line' is already a string.
You don't need the temporary variable here. Also, you may want to use
str.split instead:
# NB : renaming for conformity to
# Python's official naming conventions
# 'name' => what the user looks for
# 'path_to_file' => fully qualified path to the 'database' file
target = "%s=" % name # what we are really looking for
with open(path_to_file) as the_file:
for line in the_file:
# special bonus : handles empty lines and 'comment' lines
# feel free to comment out the thre following lines if
# you're sure you don't need them !-)
line = line.strip()
if not line or line.startswith('#') or line.startswith(';'):
continue
# faster and simpler than a regexp
if line.startswith(target):
# since the '=' is in target, we can safely assume
# that line.split('=') will return at least a
# 2-elements list
path = line.split('=')[1]
# no need to look further
break
else:
# target not found...
path = None
I don't think so. Really.
Here is the scenario:
It's a command line program. I ask user for a input string. Based on
that input string I retrieve text from a text file. My text file looks
like following
Text-file:
-------------
AbcManager=C:\source\code\Modules\Code-AbcManager\
AbcTest=C:\source\code\Modules\Code-AbcTest\
DecConnector=C:\source\code\Modules\Code-DecConnector\
GHIManager=C:\source\code\Modules\Code-GHIManager\
JKLConnector=C:\source\code\Modules\Code-JKLConnector
-------------
So now if I run the program and user enters
DecConnector
Then I'm supposed to show them this text "C:\source\code\Modules\Code-
DecConnector" from the text-file. Right now I'm retrieving using the
following code which seems quite ineffecient and inelegant at the same
time
with open('MyTextFile.txt')
This will lookup for MyFile.txt in the system's current working
directory - which is not necessarily in the script's directory.
as file:
this shadows the builtin's 'file' symbol.
for line in file:
if mName in line: #mName is the string that
contains user input
Path =str(line).strip('\n')
'line' is already a string.
tempStr=Path
Path=tempStr.replace(mName+'=',"",1)
You don't need the temporary variable here. Also, you may want to use
str.split instead:
# NB : renaming for conformity to
# Python's official naming conventions
# 'name' => what the user looks for
# 'path_to_file' => fully qualified path to the 'database' file
target = "%s=" % name # what we are really looking for
with open(path_to_file) as the_file:
for line in the_file:
# special bonus : handles empty lines and 'comment' lines
# feel free to comment out the thre following lines if
# you're sure you don't need them !-)
line = line.strip()
if not line or line.startswith('#') or line.startswith(';'):
continue
# faster and simpler than a regexp
if line.startswith(target):
# since the '=' is in target, we can safely assume
# that line.split('=') will return at least a
# 2-elements list
path = line.split('=')[1]
# no need to look further
break
else:
# target not found...
path = None
I was wondering if using RegEx will make this look better.
I don't think so. Really.