4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
1

Python работа с текстовыми файлами

17.12.2015, 09:22. Показов 3198. Ответов 59
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Есть функция которая считывает текстовый файл и работает с ним, но у меня много таких файлов одинакового типа меняется только название. Вопрос такой: как передать много файлов в функцию?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.12.2015, 09:22
Ответы с готовыми решениями:

Работа с текстовыми файлами .txt в Python
Здравствуйте, не могу решить задачки, кто может помочь? В первой строке файла start.txt находится...

Работа с файлами на python
Ребята прошу Вашей помощи! Стоит такая задача: допустим есть файл 1.txt с таким вот содержимым:...

Работа с файлами Python
Дорогие товарищи, изучаю потихонечку Python, учусь работе с файлами. Я сделал следующее: Открываю...

Работа с файлами в python
Помогите мне с заданием. Вот само задание: Написать приложение, которое будет работать с файлами...

Python. Работа с файлами
Всем привет. Помогите пожалуйста вот такая задача у меня: Есть информация про автомобили:марка и...

59
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 10:05 2
приведите пример имен файлов
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 10:12  [ТС] 3
Ну например 'out286015' тут нюанс в том что меняются только 6 цифр. Я делаю запрос

Python
1
2
3
4
5
6
7
8
9
10
11
12
import sys
 
reload(sys)
sys.setdefaultencoding('utf-8')
 
page = lxml.html.parse('out208269.txt')
lst = page.xpath('//div[@class = "item"]/div[@class = "title"]')
c=len(lst)
with open(u'dictionary.txt', 'w') as f:
    for element in lst:
    #print element.text + ', date: ' + element[0].text
        f.write(element.text+ ', date: ' + element[0].text + '\n')
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 10:13 4
файлОВ, нескольких, есть в них закономерность? в папке есть что-то еще, кроме них?
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 10:16  [ТС] 5
да это все html практически страницы одного типа. Они лежат в папке со скриптом.
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 10:22 6
Лучший ответ Сообщение было отмечено Jabbson как решение

Решение

Python
1
2
3
4
>>> import glob
>>>
>>> for file in glob.glob('/Users/jabbson/Downloads/*.pdf'):
...     print(file)
Код
/Users/jabbson/Downloads/28262-109-Refusal letter.pdf
/Users/jabbson/Downloads/7200NDS-D_iConverter_SFP-NID.pdf
/Users/jabbson/Downloads/7200NQS-A.pdf
/Users/jabbson/Downloads/7200NUM-A.pdf
Добавлено через 1 минуту
Вы же, ставите свою директорию, маску и вместо print - ваш код по обработке файла.
1
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 10:31  [ТС] 7
Jabbson, спасибо большое)

Добавлено через 7 минут
Jabbson, знаю что не по теме, но какую посоветуете базу данных для работы с Python?
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 10:55 8
Какая именно база данных? Какая версия питона?
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 11:18  [ТС] 9
Версия 2.7, а вот бд не знаю какую лучше и удобно будет использовать
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 13:10 10
Цитата Сообщение от Rodmistar Посмотреть сообщение
а вот бд не знаю какую лучше и удобно будет использовать
ну как почитаете про них, про разницу, подумаете над тем, какая Вам больше подходит, пишите, найдем модуль
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 16:53  [ТС] 11
Jabbson, попробовал ваш код, но мне выдаёт один документ, хотя в папке лежит 3

Добавлено через 13 минут
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
def parse(a):
    for file in glob.glob('C:\Users\R\Desktop\*.txt'):
        
        html_doc = open(file).read()
        soup = BeautifulSoup(html_doc)
        
        tag_1 = soup.find_all('div',class_='item')
        a=len(tag_1)    
        
        with open(u'dict.txt', 'w') as f:
            for i in range(0,a):    
                f.write(str(tag_1[i])+ '\n')
    print(file)
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 18:16 12
Это не имеет смысла. Что значит "выдает"? Зачем там принт?
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 18:29  [ТС] 13
Посмотреть сработал или нет

Добавлено через 1 минуту
Я так понимаю что file принимает адреса всех документов
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 18:40 14
Перенесите print(file) сразу после
Python
1
    for file in glob.glob('C:\Users\R\Desktop\*.txt'):
1
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 18:49  [ТС] 15
А какой смысл? Ведь он все равно выведет один файл, я и без print(file) пробовал
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 18:55 16
То есть код

Python
1
2
for file in glob.glob('C:\Users\R\Desktop\*.txt'):
    print(file)
выдает один файл?

Добавлено через 4 минуты
попробуйте двойные обратные слеши
Код
"C:\\Users\\R\\Desktop\\*.txt"
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 19:02  [ТС] 17
Да выдал, один файл все равно
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 19:03 18
с двойными слешами?
0
4 / 4 / 2
Регистрация: 07.05.2014
Сообщений: 489
17.12.2015, 19:08  [ТС] 19
Да. Может я что то не понимаю, но вроде должна работать.
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# -*- coding: utf-8 -*
 
import lxml.html
import urllib2
from bs4 import BeautifulSoup
import glob
 
 
def parse(a):
    for file in glob.glob('C:\\Users\\R\\Desktop\\*.txt'):
        
        html_doc = open(file).read()
        soup = BeautifulSoup(html_doc)
        
        tag_1 = soup.find_all('div',class_='item')
        a=len(tag_1)    
        
        with open(u'dict.txt', 'w') as f:
            for i in range(0,a):    
                f.write(str(tag_1[i])+ '\n')
        print(file) 
def parse1(b): 
    p = lxml.html.parse('dict.txt')
    t = [x.get('onclick').split('=')[2].split('\'')[0] for x in p.xpath('//div[@onclick]')]
    with open(u'id.txt', 'w') as f:
        for element in t:
            f.write(element+'\n')
    print(t)
            
def main():
    parse(5),parse1(6)
 
if __name__ == '__main__':
    main()
Вложения
Тип файла: rar dictioanry.rar (32.7 Кб, 3 просмотров)
0
Эксперт по компьютерным сетям
5898 / 3355 / 1035
Регистрация: 03.11.2009
Сообщений: 10,003
17.12.2015, 19:09 20
а у меня все нормально выводится
Python работа с текстовыми файлами
0
17.12.2015, 19:09
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.12.2015, 19:09
Помогаю со студенческими работами здесь

Python 2.4 работа с бинарными файлами
Сам пишу на PHP\C#, появилась нужна пописать скрипты на питоне. Ограничен версией 2.4. 1. Если...

Python. Работа с файлами. Добавление текста в файл
Прога должна копировать текст из файла в файл. Пособите кому не трудно )) R = open('Proba.txt',...

Работа с текстовыми файлами Python
Есть определённый текстовый файл с текстом, нужно считывать до точки(".") и добавлять считанную...

Работа с текстовыми файлами
есть вот такой код, надо добавить названия столбцов чтобы программа работала корректно, но не знаю...

Работа с текстовыми файлами
Здравствуйте. Задача: в каталоге много текстовых (*.txt) файлов. Файлы построчно содержат...

Работа с текстовыми файлами
Имеется текстовый файл следующего вида: 1. some text 2. some text 3. some text Как можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru