#๐ file conversion
26 messages ยท Page 1 of 1 (latest)
@shut comet
Remember to:
- Ask your Python question, not if you can ask or if there's an expert who can help.
- Show a code sample as text (rather than a screenshot) and the error message, if you've got one.
- Explain what you expect to happen and what actually happens.
:warning: Do not pip install anything that isn't related to your question, especially if asked to over DMs.
You could probably use pandas to convert it to csv then a module like xlswriter to convert that to xls
pandas doesnt work for my dta file
Why not?
If your code is too long to fit in a codeblock in Discord, you can paste your code here:
https://paste.pythondiscord.com/
After pasting your code, save it by clicking the Paste! button in the bottom left, or by pressing CTRL + S. After doing that, you will be navigated to the new paste's page. Copy the URL and post it here so others can see it.
import pandas as pd
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
def select_dta_file():
""" Opens a dialog for the user to select a DTA file. """
root = tk.Tk()
root.withdraw() # Hide the main window
file_path = filedialog.askopenfilename(title="Select a DTA file", filetypes=[("DTA files", "*.dta")])
if not file_path:
messagebox.showinfo("No file selected", "You did not select any file.")
return None
return file_path
def save_file_path():
""" Opens a save file dialog to specify the name and location of the output XLS file. """
root = tk.Tk()
root.withdraw() # Hide the main window
file_path = filedialog.asksaveasfilename(defaultextension=".xls", filetypes=[("Excel files", "*.xls")])
if not file_path:
messagebox.showinfo("No file selected", "You did not select any file for saving.")
return None
return file_path
def convert_dta_to_xls():
""" Handles the conversion process. """
input_file = select_dta_file()
if input_file:
output_file = save_file_path()
if output_file:
try:
data = pd.read_stata(input_file)
data.to_excel(output_file, index=False)
messagebox.showinfo("Success", "File has been converted and saved successfully.")
except Exception as e:
messagebox.showerror("Error", f"An error occurred: {str(e)}")
if name == "main":
convert_dta_to_xls()
Hey @shut comet!
It looks like you're trying to paste code into this channel.
Discord has support for Markdown, which allows you to post code with full syntax highlighting. Please use these whenever you paste code, as this helps improve the legibility and makes it easier for us to help you.
To do this, use the following method:
```py
print('Hello, world!')
```
This will result in the following:
print('Hello, world!')```
You can **edit your original message** to correct your code block.
import pandas as pd
import tkinter as tk
from tkinter import filedialog
from tkinter import messagebox
def select_dta_file():
""" Opens a dialog for the user to select a DTA file. """
root = tk.Tk()
root.withdraw() # Hide the main window
file_path = filedialog.askopenfilename(title="Select a DTA file", filetypes=[("DTA files", "*.dta")])
if not file_path:
messagebox.showinfo("No file selected", "You did not select any file.")
return None
return file_path
def save_file_path():
""" Opens a save file dialog to specify the name and location of the output XLS file. """
root = tk.Tk()
root.withdraw() # Hide the main window
file_path = filedialog.asksaveasfilename(defaultextension=".xls", filetypes=[("Excel files", "*.xls")])
if not file_path:
messagebox.showinfo("No file selected", "You did not select any file for saving.")
return None
return file_path
def convert_dta_to_xls():
""" Handles the conversion process. """
input_file = select_dta_file()
if input_file:
output_file = save_file_path()
if output_file:
try:
data = pd.read_stata(input_file)
data.to_excel(output_file, index=False)
messagebox.showinfo("Success", "File has been converted and saved successfully.")
except Exception as e:
messagebox.showerror("Error", f"An error occurred: {str(e)}")
if __name__ == "__main__":
convert_dta_to_xls()
I found this: https://stackoverflow.com/questions/47051326/unable-to-read-stata-dta-file-in-python recommending pyreadstat
!pip pyreadstat
You could give that a shot.
I'm not really familiar with Stata but I'm assuming .dta is their proprietary format yeah?
yea
gotta love that
pyreadstat looks pretty straightforward though
that might work for you
I'm not really finding anything else to deal with .dta files in particular (but like I said I'm not really familiar with Stata).
ill make the changes
This help channel has been closed and it's no longer possible to send messages here. If your question wasn't answered, feel free to create a new post in #1035199133436354600. To maximize your chances of getting a response, check out this guide on asking good questions.