大家可以帮我看看哪里出了问题吗
源代码
#version: python 3.11.5
#author: Jimmy Zhang
from random import *
from jieba import posseg
from os import getcwd
pseg=posseg
path_in_thu=getcwd()+"/zw_in/template"
path_out_thu=getcwd()+"/zw_in/raw"
path_out=getcwd()+"/zw_out/"
counter=str(open(getcwd()+'\zw\count.txt', 'r', encoding='utf-8')).split()[1]
types=['n','f','s','t',"nr",'ns','nt','nw','nz','vd','vn','a','ad','an','d','m','q','r','p','c','u','xc','w','per','loc','org','time']
for type in types:
eval(f"{type}=[]\n")
type={'n':'普通名词','f':'方位名词','s':'处所名词','t':'时间','nr':'人名','ns':'地名','nt':'机构名','nw':'作品名','nz':'其他专名普通动词','vd':'动副词','vn':'名动词','a':'形容词','ad':'副形词','an':'名形词','d':'副词','m':'数量词','q':'量词','r':'代词','p':'介词','c':'连词','u':'助词','xc':'其他虚词','w':'标点符号','PER':'人名','LOC':'地名','ORG':'机构名','TIME':'时间'}
def split(name:str)->None:
'''Split a string into a template string and put the word in the list of "part of speech"'''
inpath=generate_complete_path(name,path_in_thu)
outpath=generate_complete_path(name,path_out_thu)
outpath_template=generate_complete_path(name,path_in_thu)
with open(inpath,"r",encoding="utf-8") as f:
dat=pseg.cut(f)
with open(outpath,"w",encoding="utf-8") as f:
for word,flag in dat:
f.write(f'{word} {flag}/n')
with open(outpath_template,"w",encoding="utf-8") as f:
for line in f:
for flag in dat:
f.write(f'{flag}\a')
f.write('\n')
def generate_complete_path(name:str, path:str)->str:
return path+name
def flag(name:str)->None:
path=generate_complete_path(path_out_thu,name)
with open(path,"r",encoding="utf-8") as f:
for line in f:
word,flags=line.strip().split()
eval(f'{flags}.append({word})')
def make(number,template_name=random.sample(),out_name=generate_complete_path('untitled',str(counter)))->None:
for i in range(number):
out=generate_complete_path(out_name,path_out_thu)
template=generate_complete_path(template_name,path_in_thu)
with open(out,"w",encoding="utf-8") as o:
with open(template,"r",encoding="utf-8") as i:
for line in i:
line=line.split('\a')
for word in line:
eval(f'o.write(sample({word}))')
def init():
inited=False
eval("open('D:\Jimmy\zw\count.txt', 'r', encoding='utf-8').splitlines()[2]")
if inited:
return
else:
pass#未完成
错误消息:
[Running] python -u "d:\Jimmy\zw\zw.py"
Traceback (most recent call last):
File "d:\Jimmy\zw\zw.py", line 13, in <module>
eval(f"{type}=[]\n")
File "<string>", line 1
n=[]
^
SyntaxError: invalid syntax
[Done] exited with code=1 in 1.936 seconds
文件目录:
count.txt
0
inited=True
datanum=0
---备注---
第一行请不要改动,否则会导致错误
如果在zw_in/raw内添加新文件,请清空zw_in/templates/
并将inited改为false
datanum是zw_in/raw内的文件数量
文件的允许格式:*.txt
type.png