Telling Python to save a .txt file to a certain directory on Windows and Mac

后端 未结 7 1166
无人共我
无人共我 2020-11-28 19:55

How do you tell Python where to save a text file?

For example, my computer is running the Python file off my desktop. I want it to save all the text file in my docum

相关标签:
7条回答
  • 2020-11-28 20:22

    Using an absolute or relative string as the filename.

    name_of_file = input("What is the name of the file: ")
    completeName = '/home/user/Documents'+ name_of_file + ".txt"
    file1 = open(completeName , "w")
    toFile = input("Write what you want into the field")
    file1.write(toFile)
    file1.close()
    
    0 讨论(0)
  • 2020-11-28 20:23

    Use os.path.join to combine the path to the Documents directory with the completeName (filename?) supplied by the user.

    import os
    with open(os.path.join('/path/to/Documents',completeName), "w") as file1:
        toFile = raw_input("Write what you want into the field")
        file1.write(toFile)
    

    If you want the Documents directory to be relative to the user's home directory, you could use something like:

    os.path.join(os.path.expanduser('~'),'Documents',completeName)
    

    Others have proposed using os.path.abspath. Note that os.path.abspath does not resolve '~' to the user's home directory:

    In [10]: cd /tmp
    /tmp
    
    In [11]: os.path.abspath("~")
    Out[11]: '/tmp/~'
    
    0 讨论(0)
  • 2020-11-28 20:30

    If you want to save a file to a particular DIRECTORY and FILENAME here is some simple example. It also checks to see if the directory has or has not been created.

    import os.path
    directory = './html/'
    filename = "file.html"
    file_path = os.path.join(directory, filename)
    if not os.path.isdir(directory):
        os.mkdir(directory)
    file = open(file_path, "w")
    file.write(html)
    file.close()
    

    Hope this helps you!

    0 讨论(0)
  • 2020-11-28 20:35

    Just use an absolute path when opening the filehandle for writing.

    import os.path
    
    save_path = 'C:/example/'
    
    name_of_file = raw_input("What is the name of the file: ")
    
    completeName = os.path.join(save_path, name_of_file+".txt")         
    
    file1 = open(completeName, "w")
    
    toFile = raw_input("Write what you want into the field")
    
    file1.write(toFile)
    
    file1.close()
    

    You could optionally combine this with os.path.abspath() as described in Bryan's answer to automatically get the path of a user's Documents folder. Cheers!

    0 讨论(0)
  • 2020-11-28 20:38

    Just give your desired path if file does not exist earlier;

            from os.path import abspath
            with open ('C:\\Users\\Admin\\Desktop\\results.txt', mode = 'w') as final1:
                print(final1.write('This is my new file.'))
    
            print(f'Text has been processed and saved at {abspath(final1.name)}')
    

    Output will be:

    Text has been processed and saved at C:\Users\Admin\Desktop\results.txt
    
    0 讨论(0)
  • 2020-11-28 20:40

    A small update to this. raw_input() is renamed as input() in Python 3.

    Python 3 release note

    0 讨论(0)
提交回复
热议问题