在 python 中的关键字前退格并添加逗号

Backspace and add comma before keyword in python

我需要在文件中 'https:' 的每个实例之前退格并添加一个逗号。我相信正则表达式可以做到这一点,但我不确定怎么做。

下面这行是我想要的。

2021-05-11 23:39:30,https://www.tiktokv.com/share/video/

当前格式是这样的:

2021-05-11 23:35:41
https://www.tiktokv.com/share/video/

将正则表达式与模式一起使用 r"(\n)(?=https)"

例如:

s = """2021-05-11 23:35:41
https://www.tiktokv.com/share/video/
2021-05-11 23:35:41
https://www.tiktokv.com/share/video/
2021-05-11 23:35:41
https://www.tiktokv.com/share/video/"""

print(re.sub(r"(\n)(?=https)", r",", s))

输出:

2021-05-11 23:35:41,https://www.tiktokv.com/share/video/
2021-05-11 23:35:41,https://www.tiktokv.com/share/video/
2021-05-11 23:35:41,https://www.tiktokv.com/share/video/

没有正则表达式

from io import StringIO
s = StringIO("""2021-05-11 23:35:41
https://www.tiktokv.com/share/video/
2021-05-11 23:35:41
https://www.tiktokv.com/share/video/
2021-05-11 23:35:41
https://www.tiktokv.com/share/video/""")

res = []

for idx, line in enumerate(s, 1):
    if idx % 2 == 0:
        res[-1] += f',{line}'
    else:
        res.append(line.strip())
print(res)

输出:

['2021-05-11 23:35:41,https://www.tiktokv.com/share/video/\n',
 '2021-05-11 23:35:41,https://www.tiktokv.com/share/video/\n',
 '2021-05-11 23:35:41,https://www.tiktokv.com/share/video/']

我想您可以直接阅读文件,将所有行添加到列表中。然后使用','.join()格式化并将新字符串写入另一个文件。

file = open('test.txt')
rows = [row.strip() for row in file]
newfile = open('test2.txt','w')
newfile.write(','.join(rows))