Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Care este cel mai bun mod de a pr...

Recomandare centrala termica apar...

samsung Xcover 5 Nu mai vrea

Telefon de budget pentru filme 10...
 Recomandare serviciu / firma recu...

La mulți ani @Piniuli!

Pret inghetata corso kaufland?

La multi ani @Constantin si Elena...
 La mulți ani @Ion_Bumbu!

Obiecte vechi și inutile car...

Mentenanta Acoperis

Cheder deteriorat , zgariat, cum ...
 Laptop HP 15-AF001NQ, AMD E1-6015...

Blat de bucatarie lungime 4,60 m

Termostat incalzire si racire

Configurare retea cu modem Vodafo...
 

fișierul txt există, dar python nu îl găsește

- - - - -
  • Please log in to reply
7 replies to this topic

#1
CTU99

CTU99

    Active Member

  • Grup: Members
  • Posts: 1,410
  • Înscris: 31.01.2007
Scriptul Python complet este:
import subprocess
def main():
path = r'D:\temp2\pyscr\dir output.txt'
print(path)
f = open(path, 'w')
subprocess.run(["dir", "/b"], stdout=f)

if __name__ == "__main__": main()

După ce îi dau run în Eclipse/PyDev, la consolă se afișează:
D:\temp2\pyscr\dir output.txt
Traceback (most recent call last):
File "D:\projects\Manage youtube clips\tmp code to view.py", line 9, in <module>
if __name__ == "__main__": main()
File "D:\projects\Manage youtube clips\tmp code to view.py", line 7, in main
subprocess.run(["dir", "/b"], stdout=f)
File "C:\Python35\lib\subprocess.py", line 696, in run
with Popen(*popenargs, **kwargs) as process:
File "C:\Python35\lib\subprocess.py", line 950, in __init__
restore_signals, start_new_session)
File "C:\Python35\lib\subprocess.py", line 1220, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

și fișierul "dir output.txt" este creat în "D:\temp2\pyscr", dar "dir output.txt" e gol, nu are text, nu are nici o linie cu text în el. Nu îmi dau seama care e cauza problemei. Versiunea python e 3.5. Sistemul de operare e Windows 7. Eclipse e versiunea Mars.2 Release (4.5.2).

Edited by CTU99, 20 March 2016 - 00:16.


#2
Konatau

Konatau

    Junior Member

  • Grup: Members
  • Posts: 205
  • Înscris: 18.03.2012
Inlocuieste
path = 'D:\temp2\pyscr\dir output.txt'

cu
path = 'D:\\temp2\\pyscr\\dir output.txt'


Edited by Konatau, 20 March 2016 - 01:03.


#3
CTU99

CTU99

    Active Member

  • Grup: Members
  • Posts: 1,410
  • Înscris: 31.01.2007
Am rezolvat.

Greșeala era la linia:
subprocess.run(["dir", "/b"], stdout=f)

Corect e:
subprocess.run(["C:\Windows\System32\cmd.exe", "dir", "/b"], stdout=f)

Problema nu era că nu găsea "dir output.txt", cum am crezut inițial. Probema era că nu găsea "dir.exe".

Edited by CTU99, 20 March 2016 - 02:51.


#4
CTU99

CTU99

    Active Member

  • Grup: Members
  • Posts: 1,410
  • Înscris: 31.01.2007

View PostKonatau, on 20 martie 2016 - 01:02, said:

Inlocuieste
path = 'D:\temp2\pyscr\dir output.txt'

cu
path = 'D:\\temp2\\pyscr\\dir output.txt'

Aveam
path = r'D:\temp2\pyscr\dir output.txt'

care e același string ca și
path = 'D:\\temp2\\pyscr\\dir output.txt'

Test:
>>> s1 = r'D:\temp2\pyscr\dir output.txt'
>>> s2 = 'D:\\temp2\\pyscr\\dir output.txt'
>>> s1 == s2
True


Edited by CTU99, 20 March 2016 - 03:16.


#5
Konatau

Konatau

    Junior Member

  • Grup: Members
  • Posts: 205
  • Înscris: 18.03.2012
Am zis sa incerci asa pentru ca eu am avut probleme pentru ca nu foloseam dublu "\" (py27).

#6
xxvirusxx

xxvirusxx

    Retired

  • Grup: Senior Members
  • Posts: 13,441
  • Înscris: 11.11.2005
Nu merge sa pui variabile?
In loc de :
C:\Windows\System32\cmd.exe
sa pui
%windir%\system32\cmd.exe

Intreb si eu.....ca daca  il testezi pe un calc cu win instalat pe E, nu mai merge... Posted Image

Edited by xxvirusxx, 20 March 2016 - 20:56.


#7
dani.user

dani.user

    Guru Member

  • Grup: Senior Members
  • Posts: 30,268
  • Înscris: 24.02.2007
Nu vad de ce ai folosi Python (cross-platform) ca apoi sa te legi de un executabil specific unui sistem pentru o treaba atat de banala ce-o poti implementa in cod "pur Python".

#8
dilo00o

dilo00o

    Junior Member

  • Grup: Members
  • Posts: 121
  • Înscris: 24.03.2012
ma bag si eu in seama la o luna mai tarziu,
ca sa eviti problemele astea de path iti recomand cu mare caldura os.path.join(...) din modulul os

si o sugestie: pycharm

Anunturi

Second Opinion Second Opinion

Folosind serviciul second opinion ne puteți trimite RMN-uri, CT -uri, angiografii, fișiere .pdf, documente medicale.

Astfel vă vom putea da o opinie neurochirurgicală, fără ca aceasta să poată înlocui un consult de specialitate. Răspunsurile vor fi date prin e-mail în cel mai scurt timp posibil (de obicei în mai putin de 24 de ore, dar nu mai mult de 48 de ore). Second opinion – Neurohope este un serviciu gratuit.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate