有一些我从根本上误解的东西。对于一般来说相对较新的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)
但这看起来很尴尬,所以我想我会问。