python-3.x - 处理来自文本文件的行
问题描述
我从根本上误解了一些东西。总的来说,对 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)
但这似乎很尴尬,所以我想我会问。
解决方案
推荐阅读
- c++ - 项目的开发和主要分支的不同文件
- python - 模块'seaborn'没有属性'relplot'尝试了其他解决方案没有通过Anaconda的Jupyter 5.0.0
- firebase - 在不使用 Cloud Functions 的情况下发送通知 Firebase Flutter
- python - 如何在特定命名字符串之后提取字符串
- javascript - Vue 路由器 4 和 Vue 3 应用程序两次显示组件
- r - 选择具有二维的同名对象
- javascript - 如何在 JavaScript 中将多个数组对象转换为查询字符串参数
- php - 在循环php中查找日期是否属于日期范围[编辑]
- firebase - Flutter Firebase Phone Authentication 在验证时使 iOS 上的应用程序崩溃
- javafx - Javafx webview 编译错误“包 com.sun.webkit.dom 不可见”