2015-06-23 4 views
0

Невозможно прочитать выходной файл. Код кажется идеальным, но ни у кого нет результата желания, ни у меня ошибка. Пожалуйста, помогите мне в этомНевозможно прочитать выходной файл в python

Примечание: Я получаю результат как пустое пространство, как я распечатать

with open("D:/txt_res/RahulChoudhary.txt") as infile, open ("x", 'w') as outfile: 

    copy = False 

    for line in infile: 

     if line.strip() == "Technical Skills": 

      copy = True 

     elif line.strip() == "Work Experience": 

      copy = False 

     elif copy: 

      outfile.write(line) 

      infile = open("x", 'r') 

      contents = infile.read() 

      print(contents) 
+0

Какая ошибка? –

+2

зачем закрывать outfile в цикле for? вам нужен режим «a»? – LittleQ

+0

@AnandSKumar Ошибка также не выполняется. –

ответ

0

В зависимости от ваших требований, указанных в комментариях, я обновил свой код. Он ищет «Технические навыки» в каждой строке и, как только обнаружил, позволяет писать (copy). Он будет записывать каждую строку после того, как это будет удалено, и когда будет найдена строка с «Work Experience», она перестанет обрабатываться.

with open("in.txt") as infile, open ("out.txt", 'w') as outfile: 

    copy = False 

    for line in infile: 

     if line.strip() == "Technical Skills": 
      copy = True 

     if line.strip() == 'Work Experience': 
      break 

     if copy: 
      outfile.write(line) 

fh = open("out.txt", 'r') 
contents = fh.read() 
print(contents) 

Учитывая этот вход:

Introduction 
I'm me, I'm not sane, I do reckless things most of the time, and I have a 
very hard time keeping focused on tasks. 

Technical Skills 
- I have this skill 
- and this skill 
- I suck at these skills 
- but I'm very good at this, that and the other too 

Work Experience 
2001 - 2010 Senior Network Engineer 
2010 - 2015 Senior Toilet Cleaner 

Он будет производить этот вывод:

Technical Skills 
- I have this skill 
- and this skill 
- I suck at these skills 
- but I'm very good at this, that and the other too 

Если вы не хотите линию "Технические навыки" на выходе, поставить линию с continue непосредственно после линии copy = True.

+0

Еще не получил требуемый результат. Когда я набираю spyder, im получает пустое пространство, и если я нахожу код в python.exe, тогда я получаю некоторые числа в качестве вывода, тогда как мой вывод должен быть текстовым. –

+0

Ну, учитывая, что вы не опубликовали ни один из ваших исходных входных данных, это обязательно произойдет. Весь этот скрипт читает файл и перебирает его. Если в строке в файле есть «Технические навыки», она записывает эту строку в выходной файл. После ввода входного файла выводится выходной файл. Если «Технические навыки» не во входном файле, выходной файл будет пустым, и ничего не будет напечатано. Если вы сказали нам, что ваш ввод и что * точно * вы хотите в качестве вывода, это действительно поможет. – stevieb

+0

... и как вы называете этот код? – stevieb

0

Во-первых, цикл должен быть:

for line in infile: 

Далее, как уже упоминалось Кристофер Shroba и другие, вы не должны обрабатывать открытия/закрытия файла в течение цикла. Ключевое слово «с» - это обработчик, поэтому он будет заниматься открытием и закрытием файлов. Просто напишите строку, как вы уже.

Это касается и вторжения. «С» обрабатывает его, поэтому вам не нужно открывать или закрывать его вручную.

+0

Спасибо, я обновил свой код. Но все-таки я не получаю выход, я получаю пустое пространство или некоторые цифры –

Смежные вопросы