[英]Adding filename to last column in csv using python
我有一個充滿.mpt文件的文件夾,每個文件都具有相同的數據格式。 我需要從所有文件中刪除前57行,並將這些文件附加到一個csv-output.csv中。 我已經有該部分了:
import glob
import os
dir_name = 'path name'
lines_to_ignore = 57
input_file_format = '*.mpt'
output_file_name = "output.csv"
def convert():
files = glob.glob(os.path.join(dir_name, input_file_format))
with open(os.path.join(dir_name, output_file_name), 'w') as out_file:
for f in files:
with open(f, 'r') as in_file:
content = in_file.readlines()
content = content[lines_to_ignore:]
for i in content:
out_file.write(i)
print("working")
convert()
print("done")
這部分工作正常。
如何將每個.mpt文件的文件名添加為output.csv的最后一列,謝謝!
這是一個快速的解決方案。
在此循環中,變量i
只是一個字符串(CSV文件中的一行):
for i in content:
out_file.write(i)
因此,您只需要1)去除行尾字符(“ \\ n”或“ \\ r \\ n”)並附加“,”即可。
如果您使用的是Unix,請嘗試:
for i in content:
i = i.rstrip("\n") + "," + output_file_name + "\n"
out_file.write(i)
假定字段分隔符是逗號。 另一個選擇是:
for i in content:
i = i.rstrip() + "," + output_file_name
print >>out_file, i
這將從i
的末尾刪除所有空白。
如果需要引用輸出文件名,請添加引號:
i = i.rstrip(...) + ',"' + output_file_name '"'
相關部分:
with open(f, 'r') as in_file:
content = in_file.readlines()
content = content[lines_to_ignore:]
for i in content:
new_line = ",".join([i.rstrip(), f]) + "\n" #<-- this is new
out_file.write(new_line) #<-- this is new
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.