Tengo un problema al escribir en un archivo CSV. ¿Qué hay de malo con este código?
f = open("test.csv", 'w', encoding='utf-8')
with open("sprawdzamy.txt", "r", encoding="utf-8") as plik:
text = plik.read()
tester=text.split("\n")
with open("testdata_hr.csv", "r", encoding="utf-8") as plik:
x = 0
for line in plik:
someList=line.split(",")
if x == 0:
x+=1
continue
for element in tester:
if element in line:
for s in someList:
f.write(s +"\t")
f.write("Good" +'\n')
Entonces quiero obtener un archivo como:
1 2 3 4 5 Good
2 4 5 2 1 Good
Pero me sale algo así:
1 2 3 4 5
Good
2 4 5 2 1
Good
3 respuestas
Parece que su línea contiene new line
caracteres, así que para eliminar ese carácter use rstrip
f = open("test.csv", 'w', encoding='utf-8')
with open("sprawdzamy.txt", "r", encoding="utf-8") as plik:
text = plik.read()
tester=text.split("\n")
with open("testdata_hr.csv", "r", encoding="utf-8") as plik:
x = 0
for line in plik:
someList=line.split(",")
if x == 0:
x+=1
continue
for element in tester:
if element in line:
for s in someList:
f.write(s.rstrip('\n\r') +"\t")
f.write("Good" +'\n')
Es posible que desee pensar en una sola escritura en lugar de escrituras consecutivas. Algo como esto:
write_string = ""
for s in someList:
write_string += f"{s}\t"
f.write(f"{write_string} Good \n")
Siento que debería haber una solución más elegante que esta, pero debería funcionar.
Pocas preocupaciones aquí
- El archivo CSV implica que es un archivo con valores separados por comas
1,2,3,4,5,Good
2,4,5,2,1,Good
- Utilice el módulo python
csv
para escribir un archivo csv.
import csv
with open('employee_file.csv', mode='w') as employee_file:
employee_writer = csv.writer(employee_file, delimiter=',', quotechar='"', quoting=csv.QUOTE_MINIMAL)
employee_writer.writerow(['John Smith', 'Accounting', 'November'])
employee_writer.writerow(['Erica Meyers', 'IT', 'March'])
El archivo de salida se vería así
John Smith,Accounting,November
Erica Meyers,IT,March
Obtenga más información en https://realpython.com/python-csv/
Preguntas relacionadas
Nuevas preguntas
python
Python es un lenguaje de programación multipropósito, de tipificación dinámica y de múltiples paradigmas. Está diseñado para ser rápido de aprender, comprender y usar, y hacer cumplir una sintaxis limpia y uniforme. Tenga en cuenta que Python 2 está oficialmente fuera de soporte a partir del 01-01-2020. Aún así, para preguntas de Python específicas de la versión, agregue la etiqueta [python-2.7] o [python-3.x]. Cuando utilice una variante de Python (por ejemplo, Jython, PyPy) o una biblioteca (por ejemplo, Pandas y NumPy), inclúyala en las etiquetas.