@pavel07041984

Поможете чайнику на линуксе с питоном?

Здравствуйте уважаемые программисты!
Я читал уже схожие вопросы и ответы на них, но увы, я не знаю питон от слова вообще, поэтому не бейте сильно))

У меня на компе установлена Ubuntu 21. Есть у меня рабочий скрипт на питоне2.7, запускается командной строкой из папки. Он читает из текстового файла kolonial.txt, который находится с ним в одной папке и создает второй текстовый файл kolonial2.txt с результатами в эту же папку. Находится он на диске sdb1.

Мне нужно, чтобы он читал текстовый файл из папки kooper из диска sda1, а результаты записывал в папку deals в kolonial2.txt на диске sdb2.

Вот так это выглядит сейчас

#!/usr/bin/env python
# encoding: utf-8

import sys
import getopt
import random

#sys.stdout = open('output.txt','wt')

MARKS = open('kolonial.txt', 'r').readlines()
outputtxt = open('kolonial2.txt', 'w')

class Usage(Exception):
def __init__(self, msg):
self.msg = msg

Как прописать путь, диски и папки с файлами???? Напоминаю, у меня Ubuntu))
Очень прошу написать кусок кода, который можна копировать и вставить вместо
MARKS = open('kolonial.txt', 'r').readlines()
outputtxt = open('kolonial2.txt', 'w')
Пробовал
open('/mnt/dev/sda1/home/kooper/kolonial.txt', 'r')
open('/mnt/dev/sdb2/deals/kolonial2.txt', 'w')
Написало IOError: [Errno 2] No such file or directory: '/mnt/dev/sdb2/deals/kolonial2.txt'
  • Вопрос задан
  • 191 просмотр
Решения вопроса 2
svsd_val
@svsd_val
Разработчик & администратор M$, GNU/Linux
У тебя вызов Open может принимать как относительные пути (когда он смотрит в рабочем каталоге) так и полные пути, смело указывай полный в обоих случаях и всё будет работать, только посмотри что права у пользователя есть на этот каталог и файл...
Для примера:
open('kolonial.txt', 'r') замени на open('/mnt/kooper/kolonial.txt', 'r')
а open('kolonial2.txt', 'w') на open('/mnt/deals/kolonial2.txt', 'w')
Ответ написан
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Я не питонист, но тут всё просто:
MARKS = open('/[mount_point_sda1]/kooper/kolonial.txt', 'r').readlines()
outputtxt = open('/[mount_point_sdb2]/deals/kolonial2.txt', 'w')

Вместо [mount_point_sda1] и [mount_point_sdb2] нужно подставить их точки монтирования (см. вывод команды mount).
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@pavel07041984 Автор вопроса
Все решилось довольно просто)) Заменой строк на
open('/home/kooper/kolonial.txt', 'r')
open('/home/deals/kolonial2.txt', 'w')
Дальше я смонтировал Dropbox как сетевую папку cooper, а GoogleDrive как сетевую папку deals.
В результате, мне сбрасывают рабочие файлы на Dropbox, я запускаю скрипт, он обрабатывает их и создает отчет начальству прямо на GoogleDrive.
Огромное спасибо Валентин Судаков Валентин Судаков и AUser0 AUser0
Теперь создание отчета у меня занимает около 5 минут вместо 3-4 часов))
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы