How can I replace “cat” and “echo” read/write command with python/c program?





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ height:90px;width:728px;box-sizing:border-box;
}







0















I have trouble replacing device in/output commands like:



echo 100 > /dev/rtmotor_raw_l0   # output 100hz frequency


cat /dev/rtswitch0 # read switch state


output problem(python)



I tried replacing that command with python.



file = open('/dev/rtmotor_raw_l0','w')
file.write('100n') # I want output in this timing
file.close() # output reflected after closing file


The problem is that the output appears after closing the file.
Does this mean I have to open and close this device each time I want to change its value? Also, changing 'w' to 'a' did not work.



input problem(python)



Almost the same problem happens in input observation.



file = open('/dev/rtswitch','r')
file.read() # works
file.read() # after first read it does't work anymore
file.close() # need to reopen the file to get newer value


I could only read 1 input in each opening files.



So, currently I have to reopen the devices each time I want to write/read new values.
Are there any way to avoid this problem?



Thank you.










share|improve this question













migrated from superuser.com Feb 1 at 14:31


This question came from our site for computer enthusiasts and power users.














  • 1





    After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

    – chepner
    Feb 1 at 14:53


















0















I have trouble replacing device in/output commands like:



echo 100 > /dev/rtmotor_raw_l0   # output 100hz frequency


cat /dev/rtswitch0 # read switch state


output problem(python)



I tried replacing that command with python.



file = open('/dev/rtmotor_raw_l0','w')
file.write('100n') # I want output in this timing
file.close() # output reflected after closing file


The problem is that the output appears after closing the file.
Does this mean I have to open and close this device each time I want to change its value? Also, changing 'w' to 'a' did not work.



input problem(python)



Almost the same problem happens in input observation.



file = open('/dev/rtswitch','r')
file.read() # works
file.read() # after first read it does't work anymore
file.close() # need to reopen the file to get newer value


I could only read 1 input in each opening files.



So, currently I have to reopen the devices each time I want to write/read new values.
Are there any way to avoid this problem?



Thank you.










share|improve this question













migrated from superuser.com Feb 1 at 14:31


This question came from our site for computer enthusiasts and power users.














  • 1





    After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

    – chepner
    Feb 1 at 14:53














0












0








0








I have trouble replacing device in/output commands like:



echo 100 > /dev/rtmotor_raw_l0   # output 100hz frequency


cat /dev/rtswitch0 # read switch state


output problem(python)



I tried replacing that command with python.



file = open('/dev/rtmotor_raw_l0','w')
file.write('100n') # I want output in this timing
file.close() # output reflected after closing file


The problem is that the output appears after closing the file.
Does this mean I have to open and close this device each time I want to change its value? Also, changing 'w' to 'a' did not work.



input problem(python)



Almost the same problem happens in input observation.



file = open('/dev/rtswitch','r')
file.read() # works
file.read() # after first read it does't work anymore
file.close() # need to reopen the file to get newer value


I could only read 1 input in each opening files.



So, currently I have to reopen the devices each time I want to write/read new values.
Are there any way to avoid this problem?



Thank you.










share|improve this question














I have trouble replacing device in/output commands like:



echo 100 > /dev/rtmotor_raw_l0   # output 100hz frequency


cat /dev/rtswitch0 # read switch state


output problem(python)



I tried replacing that command with python.



file = open('/dev/rtmotor_raw_l0','w')
file.write('100n') # I want output in this timing
file.close() # output reflected after closing file


The problem is that the output appears after closing the file.
Does this mean I have to open and close this device each time I want to change its value? Also, changing 'w' to 'a' did not work.



input problem(python)



Almost the same problem happens in input observation.



file = open('/dev/rtswitch','r')
file.read() # works
file.read() # after first read it does't work anymore
file.close() # need to reopen the file to get newer value


I could only read 1 input in each opening files.



So, currently I have to reopen the devices each time I want to write/read new values.
Are there any way to avoid this problem?



Thank you.







command-line python echo






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Feb 1 at 12:18









Y. RiY. Ri

84




84




migrated from superuser.com Feb 1 at 14:31


This question came from our site for computer enthusiasts and power users.









migrated from superuser.com Feb 1 at 14:31


This question came from our site for computer enthusiasts and power users.










  • 1





    After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

    – chepner
    Feb 1 at 14:53














  • 1





    After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

    – chepner
    Feb 1 at 14:53








1




1





After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

– chepner
Feb 1 at 14:53





After the first read, the file pointer is at the end of the file; assuming '/dev/rtswitch is seekable, you need to rewind the file pointer to the beginning of the file before you can read the contents again: put file.seek(0) between the two reads.

– chepner
Feb 1 at 14:53












1 Answer
1






active

oldest

votes


















1














Try call file.flush() after write() call. It will flush buffer to file and you can read data.






share|improve this answer
























    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    autoActivateHeartbeat: false,
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














    draft saved

    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54481567%2fhow-can-i-replace-cat-and-echo-read-write-command-with-python-c-program%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes









    1














    Try call file.flush() after write() call. It will flush buffer to file and you can read data.






    share|improve this answer




























      1














      Try call file.flush() after write() call. It will flush buffer to file and you can read data.






      share|improve this answer


























        1












        1








        1







        Try call file.flush() after write() call. It will flush buffer to file and you can read data.






        share|improve this answer













        Try call file.flush() after write() call. It will flush buffer to file and you can read data.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Feb 1 at 12:44









        MatejMatej

        3901311




        3901311
































            draft saved

            draft discarded




















































            Thanks for contributing an answer to Stack Overflow!


            • Please be sure to answer the question. Provide details and share your research!

            But avoid



            • Asking for help, clarification, or responding to other answers.

            • Making statements based on opinion; back them up with references or personal experience.


            To learn more, see our tips on writing great answers.




            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54481567%2fhow-can-i-replace-cat-and-echo-read-write-command-with-python-c-program%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            Plaza Victoria

            In PowerPoint, is there a keyboard shortcut for bulleted / numbered list?

            How to put 3 figures in Latex with 2 figures side by side and 1 below these side by side images but in...