简体   繁体   中英

cp: cannot stat … No such file or directory

In a python script, I issue the command:

def copy_file(csv_file):    #csv_file = "wpa-01.csv"
    subprocess.call(["cp",csv_file,"tempfile.csv"])

I get the error:

cp: cannot stat 'wpa-01.csv' : No such file or directory

-tempfile.csv is a valid file, it is open -I have tried adding quotes around wpa-01.csv, ie

subprocess.call(["cp","\"wpa-01.csv\"","tempfile.csv"])

-I have tried adding escape character in front of the '-'

-I have tried including the directory in front og the file name

-I am using gedit on a local Linux machine (so its not a dos2unix kind of solution), but the script is being ran on a remote Raspberry Pi

in every case I get the same error. I am at a loss for solutions. any suggestions?

***Here is the problem: "wpa-01.csv" is a 'live'/'dynamic' file. There is an active process that is updating that file in real time. I think that the file will have to be 'dead'/'static' in order to issue cp command? This is not ideal for my purposes. Is there a way to work around this like changing the mod or something? If not I suppose I can try to find an alternative solution.

print "wpa-01.csv" in os.listdir(".") #make sure file really does exist
subprocess.call(["cp","\"wpa-01.csv\"","tempfile.csv"],shell=True)

My guess is you need to set shell=True so that it uses your path to find cp executes in your shell ... if you don't use shell=True it wont use your path ...

Unfortunately all it is is a guess ...

Anyway, here is some supporting evidence:

>>> subprocess.call("copy tmp5.py tmp55.py")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\subprocess.py", line 470, in call
    return Popen(*popenargs, **kwargs).wait()
  File "C:\Python26\lib\subprocess.py", line 623, in __init__
    errread, errwrite)
  File "C:\Python26\lib\subprocess.py", line 833, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
>>> subprocess.call("copy tmp5.py tmp55.py",shell=True)
        1 file(s) copied.
0

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM