此问题已在此处有答案:
What exactly is current working directory?(5个答案)
5天前关闭。
我用这段代码打开几个名字中有特定数字的TXT,它开始从第12行及以下获取数据。当它找到它们时,它会在右侧添加一个带有标识号的列。6个TXT文件的连接文件保存在一个名为join的Excel文件中。问题是我得到消息“进程已完成,退出代码为0”,但我没有“我无法获取Pycharm中生成的文件。是因为我使用了一个本地地址来存放我的文件吗?
import pandas as pd
import os
import re
ruta_carpeta = r"C:\Users\José\Documents\prueba1_validador"
archivos_txt = [archivo for archivo in os.listdir(ruta_carpeta) if archivo.endswith(".txt")]
df = pd.DataFrame()
for archivo in archivos_txt:
ruta_archivo = os.path.join(ruta_carpeta, archivo)
with open(ruta_archivo, "r") as f:
contenido_archivo = f.readlines()[11:]
df_archivo = pd.DataFrame([linea.strip().split() for linea in contenido_archivo])
if re.search(r"24645", archivo):
df_archivo["Columna"] = "1"
elif re.search(r"33033", archivo):
df_archivo["Columna"] = "2"
elif re.search(r"57375", archivo):
df_archivo["Columna"] = "3"
elif re.search(r"38831", archivo):
df_archivo["Columna"] = "4"
elif re.search(r"79441", archivo):
df_archivo["Columna"] = "5"
elif re.search(r"50025", archivo):
df_archivo["Columna"] = "6"
else:
df_archivo["Columna"] = ""
df = pd.concat([df, df_archivo], ignore_index=True)
ruta_archivo_excel = os.path.join(ruta_carpeta, "join.xlsx")
with pd.ExcelWriter(ruta_archivo_excel) as writer:
df.to_excel(writer, index=False)
print("Excel file was generated:", ruta_archivo_excel)
试图使用这个简单的代码作为一个例子来测试,但不能工作。
ruta_archivo = r"C:\Users\José\Documents\prueba1_validador\TXT\33033_TRA2.txt"
with open(ruta_archivo, 'r') as f:
contenido = f.read()
print(contenido)
2条答案
按热度按时间yr9zkbsy1#
消息“Process finished with exit code 0”表示您的代码已完成运行,没有任何错误。但是,这并不一定意味着Excel文件已成功生成或保存在预期位置。
在代码中,您将Excel文件保存到TXT文件所在的同一目录。如果该目录不存在或文件路径不正确,Excel文件将不会保存到预期位置。
您可以尝试在写入Excel文件之前添加一个检查以验证目录是否存在,如果不存在,则使用os.makedirs()函数创建目录。
如果目录不存在,此代码应创建该目录,并将Excel文件保存到正确的位置。
rta7y2nd2#
是的,它没有被生成,因为你在代码中使用了一个本地地址。Pycharm可能没有写入该目录的权限。
要解决此问题,可以尝试使用绝对路径而不是相对路径
尝试使用
os.path.abspath(ruta_carpeta)
获取目录的绝对路径新