Skrypt w języku Python kończy się niepowodzeniem po uruchomieniu z innej lokalizacji niż własny folder


0

Mam prosty skrypt Pythona, który chcę okresowo uruchamiać w tle za pomocą harmonogramu zadań w systemie Windows. Skrypt Pythona działa dobrze, jeśli wykonuję go normalnie z wiersza poleceń, gdy znajduje się w tym samym folderze, na przykład za pomocą polecenia „pythonw test.py”. Ale jeśli przejdę do innego folderu i użyję bezwzględnej ścieżki do skryptu, nie powiedzie się. Na przykład „pythonw C: /somefolder/test.py”, gdy wiersz poleceń nie jest obecnie w jakimś folderze.

Skrypt wymaga utworzenia pliku, więc wiem, że skrypt nie powiódł się, ponieważ nie został utworzony żaden plik. Podejrzewam problem z uprawnieniami, ale już próbowałem zmienić właściwości folderu, aby dać wszystkim użytkownikom, a nawet grupie uprawnień „Wszyscy” pełną kontrolę nad folderem. Co jeszcze mogę spróbować?

Mam Windows 10 Pro, Python 3

To jest skrypt Pythona, chociaż, jak wspomniałem, wiem, że kod działa poprawnie:

import urllib.request, json, csv, time

with urllib.request.urlopen(***) as url:
    data = json.loads(url.read().decode())
    with open(time.strftime("%Y%m%d-%H%M%S") +".csv", 'w', newline='') as csvfile:
        csvwriter = csv.writer(csvfile)
        #csvwriter.writerow([datetime.datetime.now().strftime("%c")])
        csvwriter.writerow(data['chatters']['viewers'])

Odpowiedzi:


0

Nieważne, jestem głupcem. Skrypt działał, po prostu plik nie został utworzony w tym samym folderze co skrypt, a raczej w folderze, z którego został uruchomiony.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.