You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Python的csv模块将CSV文件保存至指定绝对路径?

嘿,这个需求我太熟了,分分钟帮你搞定!核心就是别用相对路径保存CSV,直接指定绝对路径就行,下面给你两种实用的实现方式:

解决方案

方式1:固定绝对路径(适合路径不变的场景)

如果已经确定了CSV要存的固定位置,直接把路径写进函数里就行。注意Windows系统的路径要处理好反斜杠,要么用双反斜杠,要么加个r用原始字符串:

def write_to_csv(journal_list):
    # Windows示例路径,记得替换成你自己的目标路径
    csv_target_path = r"C:\MyData\Output\journal_data.csv"
    # 要是用Linux/macOS,路径就是这种格式:"/home/username/Output/journal_data.csv"
    
    import csv
    # 打开绝对路径下的文件进行写入
    with open(csv_target_path, 'w', newline='', encoding='utf-8') as csvfile:
        # 这里替换成你实际的数据字段名
        fieldnames = ['entry_date', 'content', 'category']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        
        writer.writeheader()
        for journal in journal_list:
            writer.writerow(journal)

方式2:传入路径参数(灵活适配不同场景)

如果需要每次运行都能指定不同的保存路径,或者从配置文件读取路径,把路径作为参数传给函数会更灵活:

def write_to_csv(journal_list, csv_save_path):
    import csv
    with open(csv_save_path, 'w', newline='', encoding='utf-8') as csvfile:
        fieldnames = ['entry_date', 'content', 'category']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        
        writer.writeheader()
        for journal in journal_list:
            writer.writerow(journal)

# 调用函数时直接传绝对路径就行
# Windows示例
write_to_csv(your_collected_journals, r"C:\MyData\Output\journal_data.csv")
# Linux/macOS示例
# write_to_csv(your_collected_journals, "/home/username/Output/journal_data.csv")

额外小贴士

  • 要是目标文件夹还没创建,程序会报错,所以可以加一段代码自动创建文件夹:
import os

def write_to_csv(journal_list, csv_save_path):
    # 先提取文件夹路径,判断是否存在,不存在就创建
    target_folder = os.path.dirname(csv_save_path)
    if not os.path.exists(target_folder):
        os.makedirs(target_folder)
    
    # 后面的写入逻辑和之前一样
    import csv
    with open(csv_save_path, 'w', newline='', encoding='utf-8') as csvfile:
        fieldnames = ['entry_date', 'content', 'category']
        writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
        
        writer.writeheader()
        for journal in journal_list:
            writer.writerow(journal)

这样不管你的Python脚本和txt文件在哪个目录,生成的CSV都会精准保存到你指定的绝对路径里啦!

内容的提问来源于stack exchange,提问作者Christian Gentry

火山引擎 最新活动