Здравствуйте уважаемые программисты!
Я читал уже схожие вопросы и ответы на них, но увы, я не знаю питон от слова вообще, поэтому не бейте сильно))
У меня на компе установлена 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'
У тебя вызов Open может принимать как относительные пути (когда он смотрит в рабочем каталоге) так и полные пути, смело указывай полный в обоих случаях и всё будет работать, только посмотри что права у пользователя есть на этот каталог и файл...
Для примера:
open('kolonial.txt', 'r') замени на open('/mnt/kooper/kolonial.txt', 'r')
а open('kolonial2.txt', 'w') на open('/mnt/deals/kolonial2.txt', 'w')
Issue, думаю это не особо нужно, так как монтирование лучше всё же делать через fstab. А так можно выдать права на монтирование пользователю, к примеру на mount и umount либо на fuse-mount, что будет более надёжно.
Issue, а ещё можно откручивать все 4 колеса у автомобиля, который несётся на скорости 400 км/час по гоночной трассе, желательно в плотном потоке других автомобилей, да?
Отмонтировать диск, которым могут активно пользоваться 100-тысяч-миллионов других процессов?! Да конечно можно!
AUser0, тут всё зависит от постановки задачи, для него sdb - может быть обычная флешка/потаскун, которую будет использовать только он один. Но даже если это обычный Винт и его используют куча процессов то umount и fusermount не позволят отмонтировать диск, конечно если вы не будете использовать силу ... Но тут уже непосредственно тот кто будет это делать будет батенька и хозяин своей судьбы, захочет стрелять себе в ноги, мы не в силах противостоять ... %)
Все решилось довольно просто)) Заменой строк на
open('/home/kooper/kolonial.txt', 'r')
open('/home/deals/kolonial2.txt', 'w')
Дальше я смонтировал Dropbox как сетевую папку cooper, а GoogleDrive как сетевую папку deals.
В результате, мне сбрасывают рабочие файлы на Dropbox, я запускаю скрипт, он обрабатывает их и создает отчет начальству прямо на GoogleDrive.
Огромное спасибо Валентин Судаков Валентин Судаков и AUser0 AUser0
Теперь создание отчета у меня занимает около 5 минут вместо 3-4 часов))