我想做的是向用户询问要制作的文件的名称,然后在该文件中保存一些内容。
我的程序部分如下所示:
if saving == 1:
ask=raw_input("Type the name file: ")
fileout=open(ask.csv,"w")
fileout.write(output)
我希望格式为 .csv,我尝试了不同的选项,但似乎无法正常工作。
我想做的是向用户询问要制作的文件的名称,然后在该文件中保存一些内容。
我的程序部分如下所示:
if saving == 1:
ask=raw_input("Type the name file: ")
fileout=open(ask.csv,"w")
fileout.write(output)
我希望格式为 .csv,我尝试了不同的选项,但似乎无法正常工作。
这里的问题是您需要传递open()
一个字符串。ask
是一个包含字符串的变量,但我们还想将另一个字符串附加".csv"
到它以使其成为文件名。在 python+
中是字符串的连接运算符,所以ask+".csv"
表示ask 的内容,后跟 .csv。您当前所拥有的是寻找变量的csv
属性ask
,这将引发错误。
with open(ask+".csv", "w") as file:
file.write(output)
如果用户已经输入了扩展名,您可能还想先检查一下:
ask = ask if ask.endswith(".csv") else ask+".csv"
with open(ask, "w") as file:
file.write(output)
请注意我在打开文件时使用该with
语句。这是一种很好的做法,因为它更具可读性并确保文件正确关闭,即使出现异常也是如此。
我在这里也使用python三元运算符来根据条件进行简单的变量赋值(如果它已经以 结尾,则设置询问自身".csv"
,否则将其连接起来)。
此外,这是假设您的输出已经适合 CSV 文件,仅扩展名不会使其成为 CSV。通常在处理 CSV 数据时,您可能需要查看csv 模块。
您的变量ask
将string
在raw_input
. 因此,如果您想将扩展名 .csv 附加到它,您应该这样做:
fileout = open(ask + ".csv", "w")
那应该行得通。