Как мне заставить мою программу на python написать новый файл - PullRequest
0 голосов
/ 08 мая 2018

Я пишу программу, с помощью которой я могу извлечь данные из файла, а затем, основываясь на каком-то условии, мне нужно записать эти данные в другие файлы. Эти файлы не существуют, и только код создаст эти новые файлы. Я перепробовал все возможные комбинации параметров печати, но ничего не помогало. Программа работает нормально, без ошибок в IDLE, но новые файлы не создаются. Может кто-нибудь дать мне решение?

Вот мой код:

try:
    data= open('sketch.txt')
    for x in data:
        try:
            (person, sentence)= x.split(':',1)"""data is in form of sentences with: symbol present"""
            man=[]      # list to store person 
            other=[]     #list to store sentence
            if person=="Man":
                man.append(sentence)
            elif person=="Other Man":
                other.append(sentence)
        except ValueError:
            pass
    data.close()
except IOError:
    print("file not found")
    try:
        man_file=open("man_file.txt","w")""" otherman_file and man_file are for storing data"""
        otherman_file=open("otherman_file.txt", "w")
        print(man,file= man_file.txt)
        print(other, file=otherman_file.txt)
        man_file.close()
        otherman_file.close()
    except IOError:
        print ("file error")

1 Ответ

0 голосов
/ 08 мая 2018

2 проблемы

  1. вы должны использовать

     man_file = open("man_file.txt", "w+")
    otherman_file = open("otherman_file.txt", "w+")
    

w + - создать файл, если он не существует, и открыть его в режиме записи

Режимы 'r +', 'w +' и 'a +' открывают файл для обновления (чтение и запись); обратите внимание, что 'w +' усекает файл ..

https://docs.python.org/2/library/functions.html

2

  print(man,file= man_file.txt)
  print(other, file=otherman_file.txt)

если файл sketch.txt не существует, то "man" и "other" не будут инициализированы и в методе печати выкинет еще одно исключение

попробуйте запустить этот скрипт

def func():
    man = []      # list to store person
    other = []  # list to store sentence
    try:
        data = open('sketch.txt', 'r')
        for x in data:
            try:
                (person, sentence) = x.split(':', 1)

                if person == "Man":
                    man.append(sentence)
                elif person == "Other Man":
                    other.append(sentence)
            except ValueError:
                pass
        data.close()
    except IOError:
        print("file not found")
    try:
        man_file = open("man_file.txt", "w+")
        otherman_file = open("otherman_file.txt", "w+")
    #        print(man, man_file.txt)
    #       print(other, otherman_file.txt)
        man_file.close()
        otherman_file.close()
    except IOError:
        print ("file error")


func()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...