
本文旨在解决将 Python 列表数据正确保存到 CSV 文件时遇到的问题,特别是当列表中的每个元素被错误地写入 CSV 文件的单独列时。我们将探讨 csv 模块的使用,并提供代码示例,确保列表中的每个元素作为 CSV 文件中的单独行写入。
在使用 Python 的 csv 模块将列表数据保存到 CSV 文件时,常见的一个问题是 writerows 方法会将字符串视为字符序列,从而将每个字符写入单独的列。 解决这个问题,需要理解 writerows 方法的正确使用方式,并进行适当的数据格式转换。
正确使用 csv.writerows() 方法
csv.writerows() 方法期望接收一个可迭代对象,其中每个元素都是一个表示 CSV 文件中一行的列表或元组。 当直接将字符串列表传递给 writerows() 时,它会将每个字符串视为字符列表,导致每个字符被写入单独的列。
立即学习“Python免费学习笔记(深入)”;
解决方案:将每个元素包装在列表中
要解决这个问题,需要将列表中的每个元素(字符串)包装在一个新的列表中。 这告诉 writerows() 方法将每个字符串视为一个完整的行,而不是一系列字符。
以下是一个示例代码:
import csv
links = ['https://www.portalinmobiliario.com/MLC-2150551226-departamento-los-talaveras-id-117671-_JM#position=1&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d',
'https://www.portalinmobiliario.com/MLC-2148268902-departamento-los-espinos-id-116373-_JM#position=2&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d']
with open('links.csv', 'w', newline='') as f:
writer = csv.writer(f)
writer.writerows([link] for link in links) # 使用生成器表达式
代码解释:
使用 writerow() 方法的替代方案
除了使用 writerows() 方法和生成器表达式外,还可以使用 writerow() 方法来逐行写入数据。 这种方法可能更易于理解,特别是对于初学者。
import csv
links = ['https://www.portalinmobiliario.com/MLC-2150551226-departamento-los-talaveras-id-117671-_JM#position=1&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d',
'https://www.portalinmobiliario.com/MLC-2148268902-departamento-los-espinos-id-116373-_JM#position=2&search_layout=grid&type=item&tracking_id=01bab66e-7cd3-43ce-b3d7-8389260b443d']
with open('links.csv', 'w', newline='') as f:
writer = csv.writer(f)
for link in links:
writer.writerow([link]) # 将每个链接包装在列表中
在这个版本中,我们使用一个 for 循环来迭代 links 列表,并使用 writerow([link]) 将每个链接作为单独的一行写入 CSV 文件。 同样,重要的是将每个链接包装在一个列表中。
注意事项:
文件编码: 根据需要,可以指定文件的编码方式。 例如,使用 encoding='utf-8' 可以确保正确处理 Unicode 字符。
with open('links.csv', 'w', newline='', encoding='utf-8') as f:
# ...分隔符和引用符: csv.writer 允许自定义分隔符(默认为逗号)和引用符(默认为双引号)。 可以使用 delimiter 和 quotechar 参数进行设置。
writer = csv.writer(f, delimiter=';', quotechar='"')
总结:
将 Python 列表保存到 CSV 文件时,理解 csv.writerows() 和 csv.writerow() 方法的正确使用方式至关重要。 通过将列表中的每个元素包装在一个新的列表中,可以确保每个元素作为 CSV 文件中的单独一行写入,从而避免将字符串拆分为单独的字符列。 此外,注意文件编码和分隔符/引用符的设置,以满足特定的数据格式要求。
以上就是将 Python 列表保存为 CSV 文件:正确的方法的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号