cmd运行py文件失败,显示TypeError: expected str, bytes or os.PathLike object, not WindowsPath

使用cmd运行py文件时出现如下报错,有什么解决方法吗

img


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类型的对象进去