You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.6新子目录创建CSV:路径变量引发FileNotFoundError

搞定你的CSV文件创建问题!

嘿,我一眼就瞅出你遇到的问题啦!你收到的FileNotFoundError根本不是路径里的反斜杠的锅——os.path.join()只是帮你生成了路径字符串,但它不会自动帮你创建这个路径里的目录!你代码里拼出了Logs\14-05-2018这样的目录路径,但从来没实际创建过这个文件夹,所以open()函数自然找不到地方写文件啦。

第一步:先把目录建起来

在打开文件之前,你得先调用os.makedirs()来创建需要的目录(包括嵌套的子目录),代码改这样:

import csv, os, time  # 注意你之前漏了导入time模块,补上!

# 获取CSV文件名
logFN = input("Please name your trade.\n#")
suffix = '.csv'
csvname = logFN + suffix

# 生成目录路径
t = time.strftime("%d-%m-%Y-%H%M")
dirsname = os.path.join('Logs', t)

# 关键操作:创建目录,exist_ok=True确保目录已存在时不报错
os.makedirs(dirsname, exist_ok=True)

# 拼接完整的CSV文件路径
csvlogPath = os.path.join(dirsname, csvname)

第二步:修复文件读写的模式错误

你后面的代码里用'w'模式打开文件去读取,这完全不对——'w'模式会清空文件并准备写入,根本读不到内容!而且你重复打开文件多次,也可以优化一下:

# 先写入CSV内容
with open(csvlogPath, 'w', newline='') as csvfile:  # 加newline=''避免Windows下多出空行
    filewriter = csv.writer(csvfile, delimiter=',', lineterminator='\n', quotechar='|', quoting=csv.QUOTE_MINIMAL)
    filewriter.writerow(['get', 'new', 'values', 'later'])

# 再读取并处理CSV内容
with open(csvlogPath, 'r') as f:
    reader = csv.reader(f)
    rows = list(reader)  # 一次性把所有行存下来,方便后续操作
    rwsCount = len(rows)
    line_number = rwsCount - 1
    
    # 打印每一行和计数
    for idx, row in enumerate(rows):
        print(row, idx)
    
    print(f"最后一行索引:{line_number}")
    text = rows[line_number][0]
    print(f"最后一行第一个元素:{text}")

额外提醒

  • 路径里的反斜杠\是Windows系统正常的路径分隔符,os.path.join()会自动适配你的操作系统,完全不用纠结这个符号的问题。
  • 别忘了导入time模块,你之前的代码里用了time.strftime()但没导入,运行时会报错。

内容的提问来源于stack exchange,提问作者Goulouh Anwar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:25:37