阅读文本时处理逗号?

Handle Commas While Reading Text?

我的代码试图读取 rootDir 中指定目录中的所有日志文件,并将该日志文件中的某些信息写入 outputFile

我遇到的问题是 searchObj_Archive_date.group()fullpathzDiscsVarzCopiesVarsearchObj_Year_3or6.group() 没有被读入我的文件来自日志文件中的某些行。这种情况只发生在总输出文本行的 10% 左右,所以我很困惑为什么它只在某些时候发生,所以我得到的不是 E:\filepath\text.txt | 5/23/2015 12:00 | C:\anotherFilePath\text.txt | 23 | 23 | 5Year,而是 E:\filepath\text.txt | | | | |

如能深入了解此错误发生的原因,我们将不胜感激。我的代码如下:

经过一些研究,我发现导致我的错误的原因是每当一行中有逗号 , 时。它停止读取该逗号处的行并跳到下一行,有人知道解决这个问题的方法吗?

给我带来问题的输入文本示例:11/23/2015 12:34:58 Adding file D:\fp\fp1\fp2\text, text, text.txt

通常这些行没有逗号,所以有人知道在阅读文本行时处理逗号的方法吗?

import os
import re

fo = open('outputFile', 'w')
fo.write("Col|Col|Col|Col|Col|Col \n")
# 1.walk around directory and find log file in one of folders
rootDir = "C:\Users\"
for path, dirs, files in os.walk(rootDir, topdown=False):
for filename in files:
    fullpath = os.path.join(path, filename)
    if (filename=="text.txt"):
        # 2.open file. read from file
        fi2 = open(fullpath, 'r+')
        fi2Content = fi2.read()
        zDiscs = re.search(r'(\sNumber of copies: (\d{1,2}))', fi2Content, re.M|re.I)
        if zDiscs:
            zDiscsVar = str(zDiscs.group(2))
        zCopies = re.search(r'(Number of Discs in Set: (\d{1,2}))', fi2Content, re.M|re.I)
        if zCopies:
            zCopiesVar = str(zCopies.group(2))
        fi = open(fullpath, 'r')
        # 3.parse text in incoming file and use regex to find PATH
        for line in fi:
            #4.write path and info to outgoing file
            m = re.search(r'(Adding file(.*))',line)
            if m:
                searchObj_Adding_file = re.search(r'[A-Z]:\.+', line, re.M|re.I)
                searchObj_Archive_date = re.search(r'^\d{2}\/\d{2}\/\d{4}\s\d{2}:\d{2}:\d{2}', line, re.M|re.I)
                searchObj_Year_3or6 = re.search(r'\dyear', line, re.M|re.I)
                if searchObj_Adding_file:
                   fo.write(searchObj_Adding_file.group() + "|")
                   fo.write(searchObj_Archive_date.group() + "|")
                   fo.write(fullpath + "|")
                   fo.write(zDiscsVar + "|")
                   fo.write(zCopiesVar + "|")
                   fo.write(searchObj_Year_3or6.group() + '\n')
#5. close file
fo.close()
fi.close()
fi2.close()

我在搜索文本行之前删除了逗号。为此,我在 if: m

之后插入了 lineWoCommas = line.replace(',', '')