0
Dzień dobry
Mam pewien problem we fragmencie kodu. Plik importowane.txt zawiera dane o współrzędnych, więc wygląda przykładowo tak:
Chciałbym zaimportować te dane jako zmienna do innego programu pythona o rozszerzeniu .py. Wygląda to tak:
Teraz chciałbym zaimportowaną zmienną wykorzystać w poleceniu:
Niestety, coś takiego nie jest możliwe. Efekt jest zawsze taki sam:
Próbowałem różne rzeczy. Importowałem to jako listę:
także próbowałem deklarować to jako str. Wszystko na nic. Zawsze taki sam efekt. O tyle tego nie rozumiem że jeśli w powyższym programie dodam zaraz przed pętlą for linię:
To otrzymuję poprawną wartość zmienniej, tzn. taką, jaka powinna być na wejściu do polecenia pyautogui.moveTo:
Teraz coś czego najbardziej nie rozumiem - kiedy tylko przekopiuję wartość tej zmiennej i zadeklaruję bezpośrednio, tzn.: program ma postać:
to wszystko działa bez najmniejszego problemu. Program importuje z podanego pliku dokładnie taką samą wartość, a mimo to program nie chce się uruchomić dopóki zmienna nie jest bezpośrednio zadeklarowana.
Czy ktoś zna odpowiedź na pytanie, dlaczego tak się dzieje?
Mam pewien problem we fragmencie kodu. Plik importowane.txt zawiera dane o współrzędnych, więc wygląda przykładowo tak:
Kod:
(451,254)
Kod:
import pyautogui
f=open('importowane.txt', 'r')
zmienna=f.read()
Kod:
pyautogui.moveTo((zmienna), duration=1)
Kod:
pyautogui.moveTo((zmienna), duration=1)
File "/usr/local/lib/python3.8/dist-packages/pyautogui/__init__.py", line 586, in wrapper
returnVal = wrappedFunction(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pyautogui/__init__.py", line 1268, in moveTo
x, y = _normalizeXYArgs(x, y)
File "/usr/local/lib/python3.8/dist-packages/pyautogui/__init__.py", line 649, in _normalizeXYArgs
location = locateOnScreen(firstArg)
File "/usr/local/lib/python3.8/dist-packages/pyautogui/__init__.py", line 175, in wrapper
return wrappedFunction(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pyautogui/__init__.py", line 213, in locateOnScreen
return pyscreeze.locateOnScreen(*args, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pyscreeze/__init__.py", line 372, in locateOnScreen
retVal = locate(image, screenshotIm, **kwargs)
File "/usr/local/lib/python3.8/dist-packages/pyscreeze/__init__.py", line 352, in locate
points = tuple(locateAll(needleImage, haystackImage, **kwargs))
File "/usr/local/lib/python3.8/dist-packages/pyscreeze/__init__.py", line 261, in _locateAll_python
needleFileObj = open(needleImage, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: '(451,254)\n'
Kod:
f=open('importowane.txt', 'r')
zmienna=f.read()
zmienna=[zmienna]
for i in zmienna:
pyautogui.moveTo(zmienna[0], duration=1)
Kod:
print(zmienna[0])
Kod:
(451,254)
Kod:
import pyautogui
zmienna=[(451,254)]
for i in zmienna:
pyautogui.moveTo(zmienna[0], duration=1)
Czy ktoś zna odpowiedź na pytanie, dlaczego tak się dzieje?