Как прочитать отсортированный и установить текстовый файл в Python? - PullRequest
0 голосов
/ 24 апреля 2020

Я новичок в python и застрял с проблемой, я читаю текстовый файл и удаляю ненужные и пишу с отсортированным набором в новый текстовый файл. Затем мне нужно прочитать новый текстовый файл и продолжить делать следующее кодирование. Но когда я читаю файл, он читает, но пропускает последние 40 нечетных строк из нового текстового файла.

пожалуйста, найдите мою кодировку ниже

f3 = open("data/new.txt", "w")
uniqueperm = []
with open("data/read1.txt", "r") as ins:
    d = ins.readlines()
    for line in d:
    #print(line)

        if 'blab: name=' and 'blab1' in line:

            line = str(line.replace("blab: name= ", "").replace("'", "").replace("\n", ""))
            line = str(line.replace("blab1: ", "").replace("'", "").replace("\n", ""))
            #print(line)
            uniqueperm.append(line)
            #print((line))

for pop in (sorted(set(uniqueperm))):
#print(pop)
f3.write(pop + "\n")

packages = os.listdir("./data/")
inss = open("data/new.txt", 'r').read().split("\n")
print(inss)

вывод inss читает строку за строкой из нового текстового файла, но пропускает последние 40 нечетных строк в новом текстовом файле. пожалуйста, кто-нибудь, помогите мне в этом вопросе. Заранее спасибо:)

#read1.txt file contains 

blab1: cool.add.WEATHER_ALL
blab1: warm:add.WEATHER_EVERYWHERE
blab: name= hello.add.COPY_HI
blab: name= hello.add.ACCESS_HELLO
blab: name= hello.add.ADD_HI
blab: name= hello.add.WRITE_HI
.
.
.
#it also include repeated data as above so i used set() option so the duplicates are removed before writing to new.txt file 

#new.txt file contains

hello.add.ACCESS_HELLO
hello.add.ADD_HI
hello.add.COPY_HI
hello.add.WRITE_HI
cool.add.WEATHER_ALL
warm.add.WEATHER_EVERYWHERE
.
.
.

#new.txt file contains all the data from read1.txt

#when i read this new.txt file in terminal the output is

hello.add.ACCESS_HELLO
hello.add.ADD_HI
hello.add.COPY_HI
hello.add.WRITE_HI
cool.add.WEATHER_ALL

#remaining its skipping or not reading to further proceed

1 Ответ

0 голосов
/ 24 апреля 2020

Ваше условие для проверки подстрок неверно:

if 'blab: name=' and 'blab1' in line:

будет проверять 'blab: name=' и 'blab1' in line отдельно (и обе части условия должны соблюдаться). Вместо этого вы хотите:

if 'blab: name=' in line or 'blab1' in line:
...