how to pass "echo t | " input to subprocess.check_output() method
Kushal Kumaran
kushal.kumaran+python at gmail.com
Mon Nov 26 08:15:14 EST 2012
dachakku at gmail.com writes:
> On Monday, 26 November 2012 16:32:22 UTC+5:30, Kushal Kumaran wrote:
>> dachakku at gmail.com writes:
>>
>>
>>
>> > Hi all,
>>
>> >
>>
>> > I want to list the repositories in svn using python. For this i have used below command,
>>
>> > " res = subprocess.check_output(["svn.exe", "list", "Https://127.0.0.1:443/svn/Repos"], stderr=subprocess.STDOUT) "
>>
>> >
>>
>> > but it throws an exception, since it requires an user input to validate certificate,
>>
>> > " (R)eject, accept (t)emporarily or accept (p)ermanently? "
>>
>> >
>>
>> > from Command prompt im able to pass the input while calling the process, and im able to get the output
>>
>> >
>>
>> > "echo t | svn list Https://127.0.0.1:443/svn/Repos"
>>
>> >
>>
>> > But i dont know how to pass the "echo t | " in subprocess.check_output while calling a process.
>>
>> > Is there a way to do this?
>>
>> > Please help.
>>
>>
>>
>>
>>
>> You could pass in a stdin argument to subprocess.check_output with a
>>
>> value of 't\n'.
>>
>>
>>
>> However, you might want to use something like http://pysvn.tigris.org/,
>>
>> which is a python library for accessing subversion repositories.
>>
>>
>>
>
> Hi Kushal,
>
> I tried passing the value 't\n' to check_output. But I think we cannot pass a string to stdin.
>
> When I tried the below command,
> subprocess.check_output([svn, "list", repos_Url], stdin='t\n', stderr=subprocess.STDOUT)
>
> I got the below error message,
> File "C:\Python27\lib\subprocess.py", line 786, in _get_handles
> p2cread = msvcrt.get_osfhandle(stdin.fileno())
> AttributeError: 'str' object has no attribute 'fileno'
>
> could you tell me how to pass the value to stdin..
Follow Chris Rebert's suggestion to use subprocess.Popen and the
communicate method of the Popen object.
Have you taken a look at pysvn?
--
regards,
kushal
More information about the Python-list
mailing list