4 개의 텍스트 파일 행을 모두 추가하고 5 개의 열이있는 출력 파일을 만들고 싶습니다. 내 파일 중 하나에 두 개의 열이 있습니다. 나는 csv.reader로 해보려고했지만 올바른 결과를 얻을 수는 없습니다. 이 순간에 나는이 코드 작업입니다 : 5 개의 텍스트 파일을 열 단위로 추가합니다.
from os import walk
import csv
mypath = 'C:\\Users\\files to append'
o_data = []
files = []
for (dirpath, dirnames, filenames) in walk(mypath):
files.extend(filenames)
break
print(files)
for afile in files:
file_h=open(afile)
a_list = []
a_list.append(file_h.read())
csv_reader = csv.reader(file_h, delimiter = ' ')
for row in csv_reader:
a_list.append(row[0])
o_data.append((n for n in a_list))
file_h.close()
with open('output.dat', 'w') as op_file:
csv_writer = csv.writer(op_file, delimiter = ' ')
for row in list(zip(*o_data)):
csv_writer.writerow(row)
내 다섯 개 텍스트 파일
는 differnt 한 값으로 다음과 같이 :SCALAR
ND 9418
ST 0
TS 45000.34
0.0000
100.02
결과는 다음과 같이해야한다 (4 헤더와 5 열 수) :
SCALAR SCALAR SCALAR SCALAR
ND 9418 ND 9418 ND 9418 ND 9418
ST 0 ST 0 ST 0 ST 0 ST 0
TS 45000.34 TS 45000.34 TS 45000.34 TS 45000.34
0.0000 1.0000 2.4344 4.5656 81.2123
100.02 123.32 333.85 435.33 987.11
나는 고맙게 여길 것이다. 2
시도 나는 다른 방법으로 그것을 다시 작성 tryed. 그래서 이것이 내 해결책이지만 제대로 작동하지 않습니다. 그것은이 코드입니다
"output.out"에 "output1.out을"이름을 바꿀 수없는 이유를 이해 할 수 없습니다
수입 OS
"" " 는에 모든 bnecessary 데이터를 넣어주세요 디렉토리 는 "" "
f = []
for file in os.listdir('C:\\Users\\Append'):
if file.endswith(".dat"):
f.append(file)
print(file)
os.rename(file,"input.dat")
file = file.rsplit('.', 1)[0]
print(file)
with open("output.out", "r") as textfile1, open("input.dat", "r") as textfile2,\
open("output1.out", "w") as out:
for x, y in zip(textfile1, textfile2):
x = x.strip()
y = y.strip()
print("{0} {1}".format(x, y), file = out)
print(fname)
os.rename("input.dat", file+".txt")
os.rename("output1.out", "output.out")
print(f) # just for checking
를 그것이 erorr 제공 : csv_output.writerow (chain.from_iterable (행)) 오류 : 순서가 –
그것은 파이썬 버전에 따라 다릅니다 수있는 예상 시도 'csv_output.writerow (list (chain.from_iterable (row)))' –
예! 그것은 작동합니다. 나는 네가 어떻게 지내는지 본다. THX –