使用cmd运行py文件时出现如下报错,有什么解决方法吗
import os
import sys, getopt
import csv
from pathlib import Path
import numpy as np
def writefile(my_file) :
f1 = open(my_file,'w')
f1.write('#线计算\n')
f1.write('#序号,根目录,元素数目,元素符号,计算模式,起始点温度,起始点的x1,起始点的x2,起始点的x2,...,结束点温度,结束点的x1,...\n')
rtpath="C:\\Users\DELL\\source\\repos\\HTCbatch\\calculation\\database\\UMoZr\\line\\"
Cal_MD=1
Elem_N=3
Elem_NM="U-Mo-Zr"
TemMAX=1500.0
TemMIN=300.0
Mpoint=100
xx=np.zeros((Mpoint+1,Mpoint+1,3))
x1=np.zeros((Mpoint+1))
ct=1
for i in range(Mpoint) :
x1[i]=i/Mpoint
JMpoint=Mpoint-i
for j in range(JMpoint) :
xx[i][j][0]=x1[i]
xx[i][j][1]=(1-x1[i])*(j/(JMpoint))
xx[i][j][2]=1.0-xx[i][j][0]-xx[i][j][1]
for i in range(Mpoint) :
JMpoint=Mpoint-i
for j in range(JMpoint) :
f1.write(str(ct)+",")
f1.write(rtpath+",")
f1.write(str(Elem_N)+",")
f1.write(Elem_NM+",")
f1.write(str(Cal_MD)+",")
f1.write(str(TemMIN)+",")
f1.write(str(xx[i][j][0])+",")
f1.write(str(xx[i][j][1])+",")
f1.write(str(xx[i][j][2])+",")
f1.write(str(TemMAX)+",")
f1.write(str(xx[i][j][0])+",")
f1.write(str(xx[i][j][1])+",")
f1.write(str(xx[i][j][2])+",")
f1.write("\n")
ct=ct+1
f1.close()
def main(argv):
if len(sys.argv)<2 :
print("usage: lbatchmaker.py " )
else :
print("script path: ", os.path.abspath(sys.argv[0]))
#TT=sys.argv[2]
#print((sys.argv[1]))
#print((sys.argv[2]))
#datapath=r'C:\Users\DELL\source\repos\HTCbatch\reults'
datapath="r'"+sys.argv[1]+"'"
my_file= Path(sys.argv[1])
writefile(my_file)
if __name__ == '__main__':
main(sys.argv[1:])
可能是myfile这个路径有问题,检查一下
f1 = open(my_file,'w')
对象参数错误。
你再看看使用说明,你就知道你的参数错了。
open是打开一个文件,你要给他传一个路径,你的Path是个类对象
bytes or os.PathLike object, not WindowsPath
让你传 bytes 或者os.PathLike类型的的路径,不是WindowsPath类型的对象进去