Ok, es gab noch ein Problem und zwar '/'. Habe das Script jetzt nochmal umgebaut, jetzt bin ich soweit zufrieden. Die Textdatei ist auf meine Bedürfnisse angepasst worden
1.2.01
1.2.01.1 Text1.1
1.2.01.2 Text1.2
1.2.02
1.2.02.1 Text2.1/Testing
1.2.02.2 Text2.2
1.2.01 und 1.2.02 erzeugt dann einen Ordner, der Rest sind dann Unterordner.
""" Tool to create folders using the Nextcloud API """
###############################################
# Imports
###############################################
import subprocess
from pathlib import Path
###############################################
# Constant
###############################################
# Get home directory from user
USERHOME = str(Path.home())
NCPATH = 'https://DOMAIN/remote.php/dav/files/Frank/Python_Script/'
USERNAME = 'USER'
PASSWORD = 'PASSWORD'
###############################################
# Function to crate folder with nextcloud api
###############################################
def read_textobject():
# read folders to create from textfile
with open(f'{USERHOME}/Textdatei.txt', 'r') as obj:
# create object
for line in obj:
line_split = line.split(' ')
elements = line_split[0].split('.')
try:
if elements[3]:
main_folder = 0
# replace whitespaces with %20, and / with _ and remove linefeed (\n)
path = Path((line.replace(' ', '%20').replace('/', '_')).rstrip('\n'))
except IndexError:
print("Element is main folder")
main_folder = 1
# replace whitespaces with %20, and / with _ and remove linefeed (\n)
main = Path((line.replace(' ', '%20').replace('/', '_')).rstrip('\n'))
else:
print("Element is not a main folder")
###############################################
# Create directory
###############################################
if main_folder == 1:
# Main folder
try:
args = ['curl',
'-u',
f'{USERNAME}:{PASSWORD}',
f'{NCPATH}{main}',
'-X',
'MKCOL']
result = subprocess.run(args,
check=True,
capture_output=True,
text=True)
except subprocess.CalledProcessError as error:
print(result.stderr)
else:
if result.stdout:
print(result.stdout)
else:
print('Directory created successful')
else:
# Not a main folder
try:
args = ['curl',
'-u',
f'{USERNAME}:{PASSWORD}',
f'{NCPATH}{main}/{path}',
'-X',
'MKCOL']
result = subprocess.run(args,
check=True,
capture_output=True,
text=True)
except subprocess.CalledProcessError as error:
print(result.stderr)
else:
if result.stdout:
print(result.stdout)
else:
print('Directory created successful')
else:
print(result.stdout)
obj.close()
if __name__ == '__main__':
read_textobject()