编辑iOS:删除每行中的第一个字符

时间:2014-12-09 22:03:25

标签: python ios

我正在尝试创建一个编辑工作流程,以删除文件中每行的六个第一个字符。

目前,我已经建立了一个由三个步骤组成的新工作台:

  1. 获取所选文字
  2. 自定义Python脚本
  3. 替换所选文字
  4. 我的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)
    

    实际上,当我尝试在一条线路上使用这个工作流程时,它就会删除它。

    我该怎么办?

    提前谢谢。

1 个答案:

答案 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)