Ich versuche, eine Liste in Python, die mehrere Zeichenfolgen, von denen einige \ t und \ n Zeichen in ihnen enthalten, um eine Zeichenfolge zu erstellen.Beitritt einer Liste mit Newline-Zeichen als CL-Argument übergeben
Sagen Sie meiner Liste sieht wie folgt aus:
ll = ['list', 'of', '\tstrings', '\n\twith', 'newline', '\tcharacters']
ss = ':::'.join(ll)
print ss
druckt ss mit ihrer \ n und \ t Zeichen formatiert:
list:::of::: strings:::
with:::newline::: characters\
Während das, was ich will, ist drucken:
'list:::of:::\tstrings:::\n\twith:::newline:::\tcharacters'
Ich habe versucht:
ss =[]
for l in ll:
ss.append(repr(l))
ss = ':::'.join(ll)
, die dasselbe tut wie oben
und:
ss = ''
for l in ll:
ss += (repr(l)) + ':::'
print ss.strip(':::')
die in der Nähe ist, aber druckt:
'list':::'of':::'\tstrings':::'\n\twith':::'newline':::'\tcharacters'
ein paar Hacks aber keine Versuchte scheinen zu bekommen ich was ich brauche.
Der Grund, ich brauche es wie oben, ist, weil ich CL-Argumente zu einem Skript schreiben, die ich später auf einem anderen Computer aufrufen. Das Übergeben einer Liste als ein CL-Argument funktioniert nicht, also würde ich die Liste als String übergeben (zusammen mit ':::') und dann auf der anderen Folie mit ':::' wieder in eine Liste aufteilen. . Dies funktioniert, wenn Sie nur join und split auf der ursprünglichen Liste verwenden, jedoch einen Fehler beim Aufruf des Python-Skripts mit den hartcodierten CL-Argumenten auslöst, da es in der Liste getwistete String-Argumente gibt. Das letzte Beispiel funktioniert, wenn an der zweiten Maschine durchlaufen, gibt mir aber diese Liste, wenn ich es aufgespalten zurück:
["'list'", "'of'", "'\\tstrings'", "'\\n\\twith'", "'newline'", "'\\tcharacters'"]
wenn stattdessen ich brauche:
['list', 'of', '\tstrings', '\n\twith', 'newline', '\tcharacters']
UPDATE: Ich habe versucht, alle die Vorschläge unten und mehr und immer noch nicht herausfinden, so für jetzt bin ich nur dumping die Liste in eine Textdatei auf dem ersten Server, Übergabe der Dateiname anstelle der Liste, dann Lesen der Textdatei in eine Liste auf dem zweiten Server. Hoffentlich funktioniert diese Problemumgehung, aber ich suche immer noch nach Vorschlägen für einen besseren Weg.
Danke, das hilft jedoch, wenn ich repr (ss) als Argument übergebe und dann versuche, es auf der anderen Seite zu teilen: – user20408
Sie müssen 'repr (ss)' pass 'nicht übergeben ss 'selbst –
Ich versuchte, aber kann ss nicht übergeben, weil das Argument, das in das Shell-Skript geschrieben wird, das Python auf der anderen Seite aufruft, durch Zeilenumbrüche getrennt wird, die einen Fehler beim Aufruf des Skripts mit diesem arg – user20408