import sys
filepath = "D:\\Desktop\\SIGN IN OUT\\"
times = ["min.txt","hour.txt","datein.txt","dateout.txt"]
while True:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = z+'\\'+z
for x in range(len(times)):
f = open(filepath+y+times[x],'w')
f.write('0')
f.close()
答案 0 :(得分:3)
使用\\
加入文件并不是最好的方法。推荐的方法是使用os
模块中的os.path.join
:
import os
while True:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = os.path.join(*z.split())
for x in times:
with open(os.path.join(filepath, y, x), 'w') as f:
f.write('0')
我也建议 -
使用上下文管理器处理文件,它可以使您的代码更清晰。
直接迭代times
而不是索引
另外,正如Jean-FrançoisFabre在他的回答中所述,你最好使用os.mkdir
创建任何在你创建文件之前不存在的目录。 Here's是一个很好的参考。
答案 1 :(得分:2)
问题在于该代码:
z = input("Enter Your First and Last Name. Just don't put a . in your name. : ")
y = z+'\\'+z
y
是相同价值的两倍,由\\
加入(赢得了您未预料到的目录,但这不是主要问题) 所以你必须添加(使用os.path.join
更清洁,因为@COLDSPEED注意到了):
my_dir = os.path.join(filepath, y)
if not os.path.isdir(my_dir):
os.makedirs(my_dir) # creates dirs if doesn't exist, with full path
在打开文件之前,所以应该包含它们的目录(open
如果目录不存在则会失败)