2014-12-09 3 views
0

파일의 각 줄에있는 여섯 번째 문자를 제거하기 위해 편집 워크 플로를 만들려고합니다.편집 iOS : 각 줄의 첫 번째 문자 제거

  1. 사용자 정의 파이썬 스크립트를 텍스트를 선택하기

내 파이썬 스크립트가 선택한 텍스트이다 바꾸기 :

지금, 나는 세 단계로 구성된 새로운 worklfow을 사례 한 :

#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

"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) 
관련 문제