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

Обновлено на основе комментариев

У меня есть текстовый файл со списком переменных (разделителем может быть что угодно - я использую запятую для иллюстрации)

URL, filename, folder
URL, filename, folder  
URL, filename, folder

У меня есть код который обрабатывает переменные URL, имя файла и папку и записывает в базу данных. Я хочу пропустить l oop через каждую строку и обработать переменные как I go. Так, например,

read variables URL, filename, folder in first line 
process
read variables URL, filename, folder in second line 
process
etc

Кажется, есть много примеров для чтения и отображения элементов строки в файле txt, но я изо всех сил пытаюсь найти пример, который читает строку, обрабатывает некоторый код с использованием этих переменных в строке, а затем переход к следующей строке.

Обновлен кодом на основе ответа ниже

with open(r"F:\Python\test.txt", "r") as inputfile:
for line in inputfile:
    URL, filename, folder = line.rstrip('\n').split(',')
 <rest of code>

Скрипт запускается с использованием переменных из строки 1 текстового файла, но не l oop в строку 2 и обработать второй (или третий et c) набор переменных.

Ответы [ 3 ]

1 голос
/ 28 мая 2020

Если предположить структуру, которую вы предложили для каждой строки: URL, filename, folder, вы можете захватить все 3 переменные в одну go как таковую:

with open('my_file.txt', 'r') as inputfile:
    for line in inputfile:
        url, filename, folder = line.rstrip('\n').split(', ')
        db.insert(url, filename, folder) # Or other command as needed

Обратите внимание, что вы разделяете запятую плюс пробел с line.split(', '), так как ваш входной файл разделяет поля запятой и пробелом. Если он действительно разделен запятыми, вы можете убрать пробел из вызова функции split.

0 голосов
/ 28 мая 2020

Спасибо всем за помощь. На основе кодов Сэма и Тима я решил проблему

def code():

with open(r"F:\Python\test.txt", "r") as inputfile:
    for line in inputfile:
        URL, filename, folder = line.rstrip('\n').split(',')
        code()
0 голосов
/ 28 мая 2020

Сначала я предполагаю, что под «переменными» вы подразумеваете текст внутри файла, разделенный запятыми. в этом случае это должно сработать:

with open('file_name.txt', 'r') as file:
    for line in file:
        for item in line.split(','):
            # do something with each item here

имейте в виду, что элементы будут строками

ОБНОВЛЕНО, чтобы отразить изменения в вашем файле примера

...