2016-03-01 35 views
0

我不知道这是为什么不工作如何通过python创建文本文件?

import time 

consumption = "300" 
spend = "5000" 

def create_report(consumption, spend): 

    date = time.strftime("%d/%m/%Y") 
    date = date + ".txt" 
    file = open(date, "w") 
    file.write("Since: ", pastdate) 
    file.write("Consumption in £: ", consumption) 
    file.write("Overall spend in £: ", spend) 
    file.close() 

create_report(consumption, spend) 

我希望能够简单地创建一个文本文件,并在它与今天的日期文本文件的名字写。 “w”似乎没有创建文件。我得到的错误:

file = open(date, "w") 
FileNotFoundError: [Errno 2] No such file or directory: '01/03/2016.txt' 
+0

这不是您平台上的有效文件名。 – jonrsharpe

+0

使用'date = time.strftime(“%d-%m-%Y”)'作为替代 – gtlambert

+0

尝试'w +'而不是'w',看看是否可以解决您的问题。 –

回答

0
import time 

consumption = "300" 
spend = "5000" 

def create_report(consumption, spend): 
    # '/' is used for path like `C:/Program Files/bla bla` so you can't use it as a file name 
    date = time.strftime("%d_%m_%Y") 
    date = date + ".txt" 
    file = open(date, "w") 
    # NameError: name 'pastdate' is not defined 
    # file.write("Since: ", pastdate) 

    # The method `write()` was implemented to take only one string argument. So ',' is replaced by '+' 
    file.write("\n Consumption in £: " + consumption) 
    file.write("\n Overall spend in £: " + spend) 
    file.close() 

create_report(consumption, spend) 
0

你似乎操作系统,其中/是一个目录分隔上运行此。

试试这个代码,而不是:

date = time.strftime("%d%m%Y") + '.txt' 
with open(date, "w") as f: 
    f.write("Since: ", pastdate) 
    f.write("Consumption in £: ", consumption) 
    f.write("Overall spend in £: ", spend) 

注意的几件事情:

  • 使用with是更好的做法,因为它保证你的文件被关闭,即使发生异常
  • 使用file作为文件名是不好的做法
相关问题