如何使用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




