首页 > 解决方案 > 如何在 Python 3 代码中重写我的追加行?

问题描述

我的代码

token = open('out.txt','r')

linestoken=token.readlines()
tokens_column_number = 1
r=[]
for x in linestoken:
    r.append(x.split()[tokens_column_number])
token.close()

print (r)

输出

'"tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz",'

期望的输出

"tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz"

如何摆脱'',

标签: pythonstring

解决方案


很高兴看到您的输入数据。我创建了一个与您的相似的输入文件(我希望如此)。

我的测试文件内容:

example1 "tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz", aaaa
example2 "tick2/tick_calculated_2_2020-05-27T11-59-07.json.gz", bbbb

您应该替换", ',' 字符。

您可以使用replacehttps://docs.python.org/3/library/stdtypes.html#str.replace):

r.append(x.split()[tokens_column_number].replace('"', "").replace(",", ""))

您可以使用striphttps://docs.python.org/2/library/string.html#string.strip):

r.append(x.split()[tokens_column_number].strip('",'))

您可以使用re.subhttps://docs.python.org/3/library/re.html#re.sub):

import re

...
...
for x in linestoken:
    x = re.sub('[",]', "", x.split()[tokens_column_number])
    r.append(x)
...
...

两种情况下的输出:

>>> python3 test.py
['tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz', 'tick2/tick_calculated_2_2020-05-27T11-59-07.json.gz']

正如您在上面看到的输出 ( r) 是一种list类型,但如果您想将结果作为字符串获取,您应该使用join( https://docs.python.org/3/library/stdtypes.html#str.join)。

输出print(",".join(r))

>>> python3 test.py
tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz,tick2/tick_calculated_2_2020-05-27T11-59-07.json.gz

输出print("\n".join(r))

>>> python3 test.py
tick2/tick_calculated_2_2020-05-27T11-59-06.json.gz
tick2/tick_calculated_2_2020-05-27T11-59-07.json.gz

推荐阅读