我确信这很可能会因为一个糟糕的头衔而被投票,但这是我的第一个问题。
我正在编写一个自动创建Python脚本的程序,可以选择在自己的文件夹中创建。 伪代码如下: - 获取要使用的文件名 - 获取用户对文件夹创建的选择 - 确保当前工作目录是此脚本运行的目录(为了更好的衡量标准) - 如果用户想要一个文件夹,mkdir与要制作的文件同名并插入其中。 - 使用请求的名称生成一个文件,chmod + x it,然后插入shebang行。
实际代码如下所示。
#!/usr/bin/python3
import os
import stat
import sys
filename=sys.argv[1]
makefolder=bool(sys.argv[2]) #This might be where the error occurs?
def makeexec(fname):
f=open(fname,'w+')
f.write("#!/usr/bin/python3")
f.close()
st=os.stat(fname)
os.chmod(fname,st.st_mode|stat.S_IXUSR|stat.S_IXGRP|stat.S_IXOTH)
os.chdir('/home/pi/programs') #^^^ effectively chmod +x
if makefolder:
os.mkdir(filename)
os.chdir('./'+filename)
makeexec(filename)
从终端调用代码如下:
./pymake examplescript 1
可以在第二个参数中插入1,0,true或false。 True生成一个文件夹,False不生成。 这段代码的问题在于,无论用户选择什么,它都会创建一个文件夹。
编辑:已解决。我只是不知道bool()
是如何工作的,并且没有任何有意义的输入,bool被指定为True
。