Python在txt文件中拆分行

时间:2015-01-30 19:52:24

标签: python regex split

我的.txt列表包含许多行,格式如下:

3AD544532F-272|5SD32332S-F72|5FD2124L-Y21|4WA32332P-A26|6DW3224C-I72
(...)

如何通过竖线分割这些数字这样我就可以收到带有以下项目的输出.txt文件:

3AD544532F-272-14

5SD32332S-F72-12

5FD2124L-Y21-41

4WA32332P-A26-17

6DW3224C-I72-41

我尝试使用此脚本但没有正确的结果。

import sys
output = open("output_list.txt","w")
print("read line and put it into list or array as you like to call it")
list = open("list.txt").read().splitlines() 
for i in list:
        re.compiler()
input()

2 个答案:

答案 0 :(得分:2)

如果您有这样的字符串3AD544532F-272|5SD32332S-F72|5FD2124L-Y21|4WA32332P-A26|6DW3224C-I72

您可以使用|内置功能

split进行拆分
line = `3AD544532F-272|5SD32332S-F72|5FD2124L-Y21|4WA32332P-A26|6DW3224C-I72`
your_splitted_line = line.split("|")
>>print your_splitted_line
>>['3AD544532F-27','5SD32332S-F72','5FD2124L-Y21','4WA32332P-A26','6DW3224C-I72']

答案 1 :(得分:1)

split()确实是最好的解决方案。使用正则表达式的替代方法是

>>> import re
>>> text = "3AD544532F-272|5SD32332S-F72|5FD2124L-Y21|4WA32332P-A26|6DW3224C-I72"

>>> for i in re.split('\|',text):
...     print (i)
... 
3AD544532F-272
5SD32332S-F72
5FD2124L-Y21
4WA32332P-A26
6DW3224C-I72