Kmom06 save to file

  • Författare
  • Meddelande

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Kmom06 save to file

Inlägg16 nov 2017, 22:34

Hej
Jag har följande kod för att spara till fil beroende på om output = "humans.txt", vilket det är från commandline inputen. Jag kan inte förstå varför if-satsen inte vill fungera? Det skrivs inte in något i filen "humans.txt".

if opts["args"]["commands"] == "get":
r = requester.request_get()
b = html_parser.article()
a = opts["args"]
c = a["output"]
if c == "humans.txt":

humansfile = open("humans.txt", "w")
humansfile.write("\n" + str(b))
humansfile.close()
else:
#output_to_file.save_to_file()
print("b")
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: Kmom06 save to file

Inlägg17 nov 2017, 08:26

Om du gör print(c) för if-satsen, vad skriver den ut?
Kod: Markera allt
c = a["output"]
print(c)
if c == "humans.txt":

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Re: Kmom06 save to file

Inlägg17 nov 2017, 11:28

om jag skriver -o=humans.txt i prompten så blir print c = humans.txt, annars False

det märkliga är tycker jag just att c får värdet humans.txt som villkoret är i if-satsen och ändå fungerar det inte..
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Kmom06 save to file

Inlägg17 nov 2017, 11:49

Är du helt säker på vilken del av if-satsen du hamnar i? Lägg in dessa print så det blir tydligare. Jag har medvetet lagt tecken både till höger och vänster om variabeln för att se om det kan vara whitespace som orsakar problem.
Kod: Markera allt
print(">>", c, "<<")
if c == "humans.txt":
  print("c har rätt innehåll")
else:
  print("c är något annat")


"Det skrivs inte in något i filen "humans.txt"." kan ju bero på något annat. Först måste vi veta vilket block koden tar sig in i.

Jag ser också att du på ena sidan använder variabeln b men att du på andra sidan använder textsträngen "b", kan det kanske påverka hur du uppfattar resultatet?

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Re: Kmom06 save to file

Inlägg17 nov 2017, 11:58

Jo när jag la in din kod så skriver den ut att "c har rätt innehåll"..
jag använde sedan din kod för att villkora skrivning till filen men det händer inget i filen ändå :-(
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Kmom06 save to file

Inlägg17 nov 2017, 12:04

Okej, då hamnar du på rätt plats i if-satsen.

Frågan är alltså varför det inte hamnar i filen. Det kan felsökas på andra sätt.

Dubbelkolla vilken fil du kollar resultatet i. Är det verkligen samma som python försöker skriva till? Kan det vara någon cache som spökar? Jag hade föredragit att kontrollera resultatet genom terminalen. Gå till rätt katalog och använd kommandon som ls för att se vilka filer som finns, och cat eller more för att kolla innehållet i filen.

Eller är det kanske utskriften som är tom. Kontrollera med en print(str(b)) inne i koden. Kanske räcker det att skriva ut b utan funktionen str().

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Re: Kmom06 save to file

Inlägg17 nov 2017, 12:13

ja om jag nu kör cat humans.txt i prompten så skrivs innehållet ut på skärmen! Men än så länge ser jag inte innehållet i Atom när jag klickar på humans.txt i projektmappen..

ok, när jag öppnar humans.txt i wordpad så ser man innehållet. Det är alltså bara i Atom som inget visas... en bugg??
Användarvisningsbild

Allinrep

dbwebb

  • Inlägg: 1124
  • Blev medlem: 03 sep 2012, 09:19
  • Ort: Portugal (tillfälligt)

Re: Kmom06 save to file

Inlägg17 nov 2017, 12:25

Jag tror det kan vara en cache i Atom. Kolla i menyerna och se om du hittar något sätt att ladda om filen. F5 kanske funkar.

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

Re: Kmom06 save to file

Inlägg17 nov 2017, 12:30

Hej Pernilla, tack för hjälpen!
Om jag ändå har dig på tråden :-), skulle du kunna kika in på min andra tråd Kmom06 frågor.. jag sitter fast i nästa fråga som är att iterera genom en dict för att ändra values? Jag har suttit hur länge som helst med detta men lyckas inte knäcka det.

Vilka är online

Användare som besöker denna kategori: Bing [Bot] och 10 gäster