我正在尝试将值附加到csv文件并将其转换为列表。但是,我无法在csv文件的第一行上编写。而是从第二行开始编写代码。任何澄清将不胜感激。
谢谢
time = get_time()
time_list = []
with open('time_data.csv', 'a', newline= '') as time_file:
time_file_write = csv.writer(time_file, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL)
time_file_write.writerow([time])
with open('time_data.csv', 'r') as time_data:
read = csv.reader(time_data)
for i in read:
time_list.append(int(i[0]))
答案 0 :(得分:0)
该错误不可重现。但是...
第一行之前的 CRLF 和最后一行之后的 no CRLF 是 Windows CSV 将具有的(旧版本)。新版本的 Windows 将完美地保留第一行并在最后一行之后添加一个额外的 CRLF。在 Linux 中,任何地方都不会出现不需要的 CRLF。即使您在 write 下重新定义等,基本行为仍然存在。
注意事项:
csv writerow 为 Windows / Linux / 等采用不同的设置,如 lib/csv.py 下给出的。不同版本的 Windows 设置不同。但是对于所有风格/版本的 Linux 都是一样的。因此,尽管此处在 Windows 中未显示错误,但您可能...
虽然问......如果你在这里提供一个简单的、中肯的和非常立即可执行的代码会更好。喜欢...
import csv time = '12' with open('time_data.csv', 'a', newline= '') as time_file: time_file_write = csv.writer(time_file, delimiter=',',quotechar='|', quoting=csv.QUOTE_MINIMAL) time_file_write.writerow([time]) with open('time_data.csv', 'r') as time_data: read = csv.reader(time_data) for i in read: print(i)
此代码 - 在消除 (1) get_time() 和 (2) 定义/填充 time_list 之后 - 将使您了解问题所在。它按预期运行。
get_time()
)在 Windows 中也不会生成空白的第一行,而且由于代码行 time = get_time()
增加了歧义,因为我们不知道它返回什么 {{1} }},您也需要检查以解决 - 如果旧的 Windows 版本不是这种情况。