处理文本文件中的行

时间:2018-05-10 22:29:59

标签: python-3.x text-files

有一些我从根本上误解的东西。对于一般来说相对较新的Python,如果我能够朝着正确的方向瞄准我更好理解的地方,我将非常感激。

这是我正在处理的另一个程序读取并附加到的配置文件。

Color=blue
Start Date=10/01/2017
End Date=01/01/2018
01/01/2017 This is what happened on this date.
04/01/2017 This is what happened on this date.
07/01/2017 This is what happened on this date.
10/01/2017 This is what happened on this date.
01/01/2018 This is what happened on this date.

我的目标是简单地用更新的日期替换第2行和第3行,以便下次读取此配置时,它将生成一个季度报告,其中包含正确的Start&结束日期。然后,这会自动通过电子邮件发送给几位高管。

我没有问题做日期数学并产生两个字符串中的内容,所以为了简洁起见,我已经从这里删除了它。

这是我写的例子,用来举例说明错误。

#--------------------------------------------------
import os
import sys

Line2 = 'Start Date=01/01/2018'
Line3 = 'End Date=04/01/2018'

ResultFile = open('C:/Apps/newconfig.txt','w')

try:
    f = open('C:/Apps/config.txt','r')
    for line in f:
        if line[0:5] == 'Start':
            print(Line2, file=ResultFile)
        elif line[0:5] == 'End D':
            print(Line3, file=ResultFile)
        else:
            print(line, file=ResultFile)
    f.close()

except:
    print('fail', file=ResultFile)

ResultFile.close()
#--------------------------------------------------

我不明白为什么代码:

        print(line, file=ResultFile)

将此内容写入ResultFile:

('Color=blue\n')

为什么括号,单引号和换行符在这里?

然而,当我选择使用切片将其分配给变量时,我只需要处理换行符。我使用以下内容解决了这个问题:

    ConfigFileLen = len(line)
    ConfigFileLine = line[0:ConfigFileLen-1]

    print(ConfigFileLine, file=ResultFile)

但这看起来很尴尬,所以我想我会问。

0 个答案:

没有答案