我正在尝试创建一个编辑工作流程,以删除文件中每行的六个第一个字符。
目前,我已经建立了一个由三个步骤组成的新工作台:
我的Python脚本是:
#coding: utf-8
import workflow
action_in = workflow.get_input()
text = open("temp.txt", "w+")
text.write(action_in)
lines = text.readlines()
for line in lines:
text.write(line[6:])
action_out = text.read()
workflow.set_output(action_out)
实际上,当我尝试在一条线路上使用这个工作流程时,它就会删除它。
我该怎么办?
提前谢谢。
答案 0 :(得分:0)
我怀疑问题是您需要关闭“temp.txt”然后重新打开它。这对我有用:
import workflow
action_in = workflow.get_input()
text = open("temp.txt", "w+")
text.write(action_in)
text.close()
text = open("temp.txt", "r")
lines = text.readlines()
text.close()
text = open("temp.txt", "w+")
for line in lines:
text.write(line[6:])
text.close()
text = open("temp.txt", "r")
action_out = text.read()
workflow.set_output(action_out)
初始“打开”语句中的“w +”将删除文件并将其打开以进行读/写;但是,文件指针将跟随写入。最安全的方法是在完成后关闭文件,然后重新打开它以重置文件指针并获取所需的数据。
由于您正在使用w +,您可能也可以使用.seek()来重新定位文件指针,具体取决于缓存,但是,如果您只需要大纲,则无需打开临时文件执行此操作。
import workflow
action_in = workflow.get_input()
lines = []
for line in action_in.split("\n"):
lines.append(line[6:])
action_out = "\n".join(lines)
workflow.set_output(action_out)