Разделите переменную на 3 переменные и удалите текст частей после - PullRequest
0 голосов
/ 05 февраля 2019

У меня есть переменная first_line в формате 1888,60,-32, и я хочу разделить ее, например, на x = 1888 y = 60 и z = -32, но они могут быть различной длинынапример, другой - 768,60,-13776.

Я попробовал это , и это не позволило мне разбить текст на переменные.

write.py

# open current file and read first line
with open(currentfile) as f:
    first_line = f.readline()
    first_line = first_line.rstrip()
print(currentfile)
print(first_line)

# define fullnamejson as END + first_line + .json
fullnamejson = "END_" + first_line + ".json"

# define fullname as END + first_line
fullname = "END_" + first_line

os.rename(currentfile, fullnamejson)
print(fullnamejson)

# define x y and z
x = "some value x"
y = "some value y"
z = "some value z"

# define formatted as what will be written to the file
formatted = "{\n  \"id\": \"" + fullname + "\",\n  \"name\": \"END\",\n  \"icon\": \"waypoint-normal.png\",\n  \"x\": " + x + ",\n  \"y\": " + y + ",\n  \"z\": " + z + ",\n}"
print(formatted)

# write to file
with open(fullnamejson, "w") as text_file:
    ##print(f(fullnamejson), file=text_file)
    print(f'{formatted}', file=text_file)

zzz_split_1.txt (вход)

1888,60,-32

fullnamejson (выход)

{
  "id": "END_1888,60,-32",
  "name": "END",
  "icon": "waypoint-normal.png",
  "x": some value x,
  "y": some value y,
  "z": some value z,
}

Ответы [ 3 ]

0 голосов
/ 05 февраля 2019

Вы были близки, все что вам нужно было использовать split для разделения контента!

f=open("a.txt", "r")
if f.mode == 'r':
    contents =f.read()
    f.close()
arr = contents.split(",")
fullnamejson = "END_" + contents + ".json"
print(fullnamejson)
fullname = "END_" + contents
formatted = "{\n  \"id\": \"" + fullname + "\",\n  \"name\": \"END\",\n  \"icon\": \"waypoint-normal.png\",\n  \"x\": " + contents[0] + ",\n  \"y\": " + contents[1] + ",\n  \"z\": " + contents[2] + ",\n}"
print(formatted)

with open(fullnamejson, "w") as text_file:
    print(f'{formatted}', file=text_file)
0 голосов
/ 05 февраля 2019

Вы ищете это?

coords = first_line.split(",")
x, y, z = int(coords[0]), int(coords[1]), int(coords[2])
0 голосов
/ 05 февраля 2019

1.Вы можете разделить строки с помощью функции split.2. Вы можете присвоить результат выражения, являющегося коллекцией, более чем одной переменной.

Все написанное выше выглядит так в коде:

x, y, z =your_string.split(',')

Просто измените кавычки. (Запись изiphone)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...