gpt4 book ai didi

python - 生成一个python文件

转载 作者:太空宇宙 更新时间:2023-11-03 23:49:29 29 4
gpt4 key购买 nike

我对 python 有疑问(很抱歉我之前的个人感受.. :P)。

我有一个 txt 文件,它包含一种自定义语言,我必须将它翻译成有效的 python 代码。

输入:

import sys  

n = int(sys.argv[1]) ;;print "Beginning of the program!"

LOOP i in range(1,n) {print "The number:";;print i}

BRANCH n < 5 {print n ;;print "less than 5"}

想要的输出看起来完全像这样:

import sys  

n = int(sys.argv[1])
print "Beginning of the program!"

for i in range(1,n) :
print "The number:"
print i

if n < 5 :
print n
print "less than 5"

输入文件的名称是从参数中读取的。输出文件是out.py。如果参数错误,它会给出错误消息。这 ;;表示换行。

当我尝试这样做时,我制作了一个数组,我将所有行读入其中,以“”分隔。然后我想把它从我不需要的标记上去掉。我做了 2 个循环,一个用于台词,一个用于单词。于是我开始更换东西。一切顺利,直到到达 } 标记。它找到它,但不能替换或剥离它。我不知道该怎么做。

我的代码(很乱,我现在没有写入文件):

f = open('test.txt', 'r')
#g = open('out.py', 'w')
allWords = map(lambda l: l.split(" "), f.readlines())
for i in range(len(allWords)):
vanfor = -1
vanif = -1
for j in range(len(allWords[i])):
a=allWords[i][j]
a=a.replace(";;","\n")
a=a.replace("CIKLUS","for")
a=a.replace("ELAGAZAS","if")
if a == "for":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
if a == "if":
allWords[i][j+3] = str(allWords[i][j+3])+" :\n"
zarojel=a.find('}')
if zarojel>-1:
a=a.rstrip('}')
a=a.replace("}","")
a=a.replace("{","")
if vanfor == -1:
vanfor=a.find("for")
if vanif == -1:
vanif=a.find("if")
if (vanfor > -1) or (vanif > -1):
a=a.replace("print"," print")
if j != (len(allWords[i]))-1:
allWords[i][j]=a+" "
print allWords[i][j],

有人可以帮我吗?提前致谢!

最佳答案

如果您更改程序的最后:

    # print allWords[i][j],
print a,

输出变成:

import sys  

n = int(sys.argv[1])
print "Beginning of the program!"

for i in range(1,n) :
print "The number:"
print i

if n < 5 :
print n
print "less than 5"

看起来非常接近您想要的。要输出到一个打开的文件对象 g,而不是 stdout,只是程序最后的另一个微小变化......:

    # print allWords[i][j],
print>>g, a,

关于python - 生成一个python文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2945044/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com