使用Python 3.5.1中的变量创建文件时的FileNotFoundError

时间:2015-12-28 21:14:41

标签: python python-3.x

我正在尝试使用Python中的变量创建一个文件,但它不会拥有它。以下是创建文件名的代码:

a, b = time.strftime("%d/%m/%Y"), time.strftime("%H-%M-%S")
c = ("SCORE"+"-"+"("+a+")"+"-"+"("+b+")")
c = str(c+".txt")

打印:SCORE-(28/12/2015) - (21-05-09).txt

这是文件名和文件扩展名(.txt)。因此,我尝试使用此代码片段创建一个文件:

file3 = open(c,"w+")
file3.write(file2a)
file3.close()

(file2a是一个名为SCORE.txt的文本文件的内容,这可以正常工作)。

当我执行此代码时,它会给我一个错误:

  

追踪(最近一次通话):     文件“E:\ Program Files \ Python guff \ DocMarker \ data \ FinalScore.py”,第57行,in       file3 = open(c,“w +”)   FileNotFoundError:[Errno 2]没有这样的文件或目录:'SCORE-(28/12/2015) - (21-05-09).txt'

令我感到困惑的是,当我将“c”位改为“test”时,它起作用了。像这样:

file3 = open("test", "w+")

这成功创建了一个名为“test”的文件,其中包含SCORE.txt的内容。我很困惑为什么它不适用于我的“c”变量。

1 个答案:

答案 0 :(得分:4)

因为你的文件名中有斜杠,所以python正在寻找

中的目录
- SCORE-(28
  |
  - 12
    |
    - 2015)-(21-05-09).txt

尝试重构您的初始代码,如下所示:

a, b = time.strftime("%d-%m-%Y"), time.strftime("%H-%M-%S")
c = ("SCORE"+"-"+"("+a+")"+"-"+"("+b+")")
c = str(c+".txt")

或者,以更紧凑,更易读的方式:

c = time.strftime("SCORE-(%d-%m-%Y)-(%H-%M-%S).txt")