python-2.7 - 如何在 CSV 文件 python 中追加新行?
问题描述
我正在使用 python 2.7,并且我有一个程序,当我从相机拍照时,每次捕获图像时,数据(相位、日期、时间、图像名称)都将存储在 CSV 文件中。这是执行下面的短代码时的 csv 文件。 https://i.stack.imgur.com/hzMTe.png
如您所见,当捕获图像时,将在下一行再次打印出“阶段”、“日期”、“时间”、“名称”的“标题”。
我希望标题只在 csv 文件的顶部打印一次。当我在一些网站上闲逛时,[newline=''] 关键字应该可以工作,但因为我使用的是 python 2.7,所以这是不可能的。
任何帮助将不胜感激。
import csv
with open('data.csv', 'a') as f:
fieldnames = ['Phase', 'Date', 'Time','Name']
thewriter = csv.DictWriter(f, fieldnames = fieldnames)
thewriter.writeheader()
thewriter.writerow({'Phase': _phase, 'Date' :
_currentDT.date(), 'Time' : _currentDT.time(),
'Name' : _nameImage })
解决方案
如果你想要一个简单的解决方案,你可以做这样的事情(不是最有效的解决方案)
import csv
with open('data.csv', 'r+') as f:
reader = csv.reader(f)
row1 = []
try:
row1 = next(reader)
except StopIteration:
print("No data is written to file yet")
fieldnames = ['Phase', 'Date', 'Time', 'Name']
thewriter = csv.DictWriter(f, fieldnames=fieldnames)
if row1 != fieldnames:
thewriter.writeheader()
thewriter.writerow({'Phase': _phase, 'Date' :
_currentDT.date(), 'Time' : _currentDT.time(),'Name' : _nameImage })
推荐阅读
- javascript - 如何在表中使用 useEffect 从后端获取数据
- python - Python Flask:从 InvokeHTTP 引发的 IO 异常。Java.net.SocketException:管道损坏(写入失败)
- python - 为 json 日志格式化 PyCharm 的控制台输出
- objective-c - How to temporarily disable Swift to Objective-C bridging header auto-generation?
- azure-active-directory - How to use a custom Web API from Logic app custom connector using AAD client credentials flow?
- node.js - Why is google cloud storage not allowing file upload when public access is granted?
- azure - 通过 Azure 函数批量插入表存储
- sql - Rails divide collection into equal parts, sort each part and join together
- deep-learning - Bahdanau 中的状态维度 注意
- ios - 更改 robot.usdz 颜色后的 ARKit 错误