首页 > 解决方案 > 处理来自文本文件的行

问题描述

我从根本上误解了一些东西。总的来说,对 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 行替换为较新的日期,以便下次读取此配置时,它将生成具有正确开始和结束日期的季度报告。然后它会自动通过电子邮件发送给一些高管。

我对日期数学和生成两个字符串的内容没有问题,所以为了简洁起见,我从这里删除了它。

这是我写的例子来说明什么是错误的。

#--------------------------------------------------
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)

但这似乎很尴尬,所以我想我会问。

标签: python-3.xtext-files

解决方案


推荐阅读