我正在用Python编写一个应用程序,它将具有许多不同的功能,所以逻辑上我认为最好将我的脚本分成不同的模块.目前我的脚本读入一个文本文件,其中包含已转换为标记和拼写的代码.然后,该脚本将代码重建为一个字符串,其中的空行将在原始代码中显示注释.
我遇到了使脚本面向对象的问题.无论我尝试什么,我似乎无法让程序以与它只是一个脚本文件相同的方式运行.理想情况下,我想要有两个脚本文件,一个包含清理和重建文件的类和函数.第二个脚本只是从命令行中作为参数给出的文件中的另一个文件中的类调用该函数.这是我目前的脚本:
import sys
tokenList = open(sys.argv[1], 'r')
cleanedInput = ''
prevLine = 0
for line in tokenList:
if line.startswith('LINE:'):
lineNo = int(line.split(':', 1)[1].strip())
diff = lineNo - prevLine - 1
if diff == 0:
cleanedInput += '\n'
if diff == 1:
cleanedInput += '\n\n'
else:
cleanedInput += '\n' * diff
prevLine = lineNo
continue
cleanedLine = line.split(':', 1)[1].strip()
cleanedInput += cleanedLine + ' '
print cleanedInput
Run Code Online (Sandbox Code Playgroud)
按照下面的Alex Martelli建议后,我现在有以下代码,它给出了与原始代码相同的输出.
def main():
tokenList = open(sys.argv[1], 'r')
cleanedInput = []
prevLine = …Run Code Online (Sandbox Code Playgroud)