Создание папок на BeagleBone Black в Python - PullRequest
0 голосов
/ 24 января 2019

У меня есть код в Pyhton (2.7) на черной гончей кости для создания папок, в которые я копирую заливки данных. Эти папки монтируются на карту micro-Sd (архив) и флэш-накопитель (оперативное копирование данных). Файл создается в моем рабочем каталоге.

Код:

@staticmethod  # Creates a folder if not present
def create_folder(folder_name):
    directory = os.path.dirname(folder_name)
    try:
        os.path.exists(directory)
        print("Folder failed")
    except:
        os.makedirs(directory, 0o777)
        print("Folder created")

Ошибка:

Traceback (most recent call last):
  File "/var/lib/cloud9/TEMS_Operations/System_Files.py", line 125, in <module>
    temp.create_folder(temp.main_folder)
  File "/var/lib/cloud9/TEMS_Operations/System_Files.py", line 41, in create_folder
    directory = os.path.dirname(folder_name)
  File "/usr/lib/python2.7/posixpath.py", line 122, in dirname
    i = p.rfind('/') + 1
AttributeError: 'function' object has no attribute 'rfind'

Есть предложения?

Тестовая программа:

def test(self):                 # System file test
    name1 = self.alarm_file()
    print(name1)
    name2 = self.data_file()
    print(name2)
    name3 = self.main_folder()
    print(name3)
    name4 = self.arch_folder()
    print(name4)

    self.create_data_file(name2)
    self.create_alarm_file(name1)
    self.create_folder(name3)
    self.create_folder(name4)

    file_to = name3 + name1
    file_from = mane4 +name1

    self.copyfile(file_from, file_to)


temp = SystemFiles("ZapOFS", "ZapLab")
print(os.getcwd())
temp.test()

Ошибка:

    /media/mmc/2019/1
    /media/usb/2019/1
    File created
    File created
    <type 'str'>
    Folder failed
    <type 'str'>
    Folder failed
    Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/ikpdb.py", line 1866, in main
    ikpdb._runscript(mainpyfile)
  File "/usr/local/lib/python2.7/dist-packages/ikpdb.py", line 1415, in _runscript
    exec(statement, globals, locals)
  File "<string>", line 1, in <module>
  File "/var/lib/cloud9/TEMS_Operations/System_Files.py", line 132, in <module>
    temp.test()
  File "/var/lib/cloud9/TEMS_Operations/System_Files.py", line 127, in test
    copyfile(file_from, file_to)
  File "/usr/lib/python2.7/shutil.py", line 82, in copyfile
    with open(src, 'rb') as fsrc:
IOError: [Errno 2] No such file or directory: '/media/usb/2019/1ZapOFS_ZapLab_Alarm_File_2019_1.csv'
[IKPdb-g] 16:34:52,604104 - INFO - Uncaught exception. Entering post mortem debugging

1 Ответ

0 голосов
/ 28 января 2019

Единственный способ разрешить создание папок в python на смонтированных дисках MMC и / или USB на BeagleBone black - это удалить пароль sudo для текущих пользователей и добавить разрешения -rw для программы.

# sudo echo "debian  ALL=NOPASSWD: ALL" >>/etc/sudoers

Не то, на что я надеялся, а единственный способ найти.

https://elinux.org/Beagleboard:BeagleBoneBlack_Debian

...