#python #path #extract
#python #путь #извлечь
Вопрос:
Допустим, в Linux есть образец текстового файла
[SampleText.txt ] 1234 = 1234 abcd = 1234 efgh = /home/user/targetfile1.txt ijkl = /home/user/targetfile2.txt
Как я могу получить конкретный путь (/home/user/targetfile1.txt amp; /home/user/targetfile2.txt ) из SampleText.txt и поместить его в переменную?
Комментарии:
1. Вы спрашиваете, как прочитать файл на Python? Пожалуйста, задайте более конкретный вопрос, поскольку это кажется простым
open("sampleText.txt","r").read()
. Какая часть чтения файла сбивает с толку? Или вы спрашиваете о поиске имени файла в строке данных? Если да, то каковы фактические правила форматирования для строки данных? Нам было бы полезно, если бы вы могли опубликовать код, который вы написали до сих пор, чтобы мы знали, какая часть вас смущает.2. Нет, это не то, что я имею в виду
3. Я умею читать, но как я могу отфильтровать, чтобы получить путь к файлу в текстовом файле
4. «это не то, что я имею в виду». Хорошо. Пожалуйста, обновите вопрос, чтобы сказать, что вы на самом деле имеете в виду. Какая часть чтения файла вас смущает? Пожалуйста, постарайтесь быть очень конкретным в вашей проблеме. Мы не можем догадаться. Пожалуйста, не добавляйте комментарии. Пожалуйста, обновите вопрос.
Ответ №1:
Мой предлагаемый подход заключается в том, чтобы проанализировать файл как общий конфигурационный файл и сохранить вещи, которые выглядят как назначения. Если в вашем файле происходят другие странные вещи, это может не сработать, но я думаю, что здесь это сработает.
myvars = {}
# iterate through all the lines
for line in open('SampleText.txt').readlines():
# skip this line if it doesn't look like an assignment
if not '=' in line: continue
# split it into left and right pieces
left, right = line.split('=', 1)
# keep it around in a dictionary
myvars[left.strip()] = right.strip()
# now you can query it to get stuff:
myvars['efgh'] # returns /home/user/targetfile1.txt
Ответ №2:
Вам нужен модуль ConfigParser:
http://docs.python.org/library/configparser.html
Он анализирует файлы, которые выглядят следующим образом. Не зная вашей точной ситуации, я не могу быть уверен.