#python #file #glob #fnmatch
#python #файл #глобус #fnmatch
Вопрос:
Я пытаюсь извлечь некоторые данные из текстового файла. Это строка кода:
directory = './mydirec'
files = glob('{0:s}/*.gather.txt'.format(directory))
Я продолжаю получать [] , поэтому результатов нет. Кто-нибудь может помочь мне понять, почему?
Спасибо
Комментарии:
1. Попробуйте использовать полный путь. Или убедитесь, что вы работаете из правильного каталога (
os.getcwd()
.2. Какой результат вы ожидали? Какие файлы / пути есть в этом каталоге?
3. Если
mydirec
находится в том же каталоге, что и скрипт, сделайтеdirectory = os.path.join(os.path.dirname(os.path.abspath(__file__)), 'mydirec')
.4. Просто предположение: может быть, попробовать
'.'
вместо'./mydirec'
?
Ответ №1:
Возможно, я неправильно понял ваш вопрос, но сбор данных из .txt действительно очень прост. Вы можете открыть и прочитать текстовый файл с 3 или 4 строками кода:
f = open("file.txt", "r ")
data = f.read()
print(data)
f.close()
и если вы ищете данные из определенных строк .txt, вы можете использовать:
f = open("file.txt", "r ")
lines = f.readlines()
print(lines[25])
f.close()
или, если вы хотите искать определенную часть данных в текстовом файле в целом
f = open("file.txt", "r ")
read = f.read()
data = read
f.close()
if "<specific word you're looking for>" in data:
#react based on the information being in the data.
Я не верю, что вам нужно возиться.формат или что-то в этом роде, вы можете просто использовать путь к файлу или, если он находится в той же папке, что и ваш скрипт, просто имя файла.
Комментарии:
1. Я думаю, что вопрос скорее в том, почему
glob()
не дает ожидаемого результата2. тогда это моя вина. Я прочитал «пытаюсь получить данные из файла» и «этот код не работает», а затем подумал: «но зачем вам это делать в первую очередь? чтение текстовых файлов легко, просто сделайте это. »
3. Название действительно вводило в заблуждение