jaja, habt Recht, sorry. Irgendwie hat mein ipython gesponnen:
Code: Alles auswählen
In [207]: '\t'.join(['a','b','c'])
Out[207]: 'a\tb\tc'
Mein eigentliches Problem scheint also eher zu sein, dass ich ein Programm habe, welche mir erlaubt, den Delimiter als Parameter mitzugeben, sowas wie:
[
edit: Lösung hier eingefügt und markiert, da (nur) hier der gesamte Source-Code steht]
Code: Alles auswählen
#!/usr/bin/env python
import re
import getopt
import sys
def usage():
print '''
USAGE: hostliste [-d|--delimiter=delimiter]
--delimiter default: newline, kann aber auch jedes andere Zeichen (oder String) sein
'''
def main():
try:
opts, args = getopt.getopt(sys.argv[1:], "d:", ["delimiter="])
except getopt.GetoptError, err:
print str(err) # will print something like "option -a not recognized"
usage()
sys.exit(2)
delimiter = '\n'
for o, a in opts:
if o in ("-d", "--delimiter"):
delimiter = a
# Lösung des Problems:
# delimiter = a.decode('string-escape')
else:
assert False, "unhandled option"
hosts = [
('host1', 'host1.f.q.dn', '192.168.1.1', 'loc1' ),
('host2', 'host2.f.q.dn', '192.168.1.2', 'loc1' ),
('host3', 'host3.f.q.dn', '192.168.1.3', 'loc1' )
]
hosts.sort()
print delimiter.join([ host[0] for host in hosts ])
if __name__ == '__main__':
main()
Wenn ich dann auf der cli sowas wie --delimiter='\t' oder Ähnliches eingebe, wird es nicht als Tab interpretiert.
Danke,
Sven