已关闭,此问题需要details or clarity。目前不接受答复。
**想改善这个问题吗?**通过editing this post添加详细信息并澄清问题。
14小时前关闭
Improve this question
我正在使用数据采集软件对一些文件进行后处理,因此我需要将大量的txt文件转换为csv,然后将csv信息减少到只有几个头和值。
我需要teadd一个文件夹上的所有txt文件,复制到一个csv内的文本分隔列用分号和过滤器的具体行。
下一个是我的脚本,它做了我需要的,但只有:a)将所有txt转换为csv,这就是全部B)过滤第一个CSV文件的数据。
但我需要它一次完成两件事我的代码有什么问题?
import os
import csv
#import pathlib
for path in pathlib.Path("C:\\Users\\EV3105\\Desktop\\bat").glob("*.txt"):
with path.open() as txtfile, path.with_suffix(".csv").open(mode="w",newline='') as csvfile:
reader = csv.reader(txtfile, delimiter = '|')
writer = csv.writer(csvfile)
for row in reader:
writer.writerow(row)
def filter_csv(input_file_path, output_file_path):
lines_to_keep = [4, 5, 23, 24, 25, 26, 27,32, 33]
with open(input_file_path, 'r') as input_file:
reader = csv.reader(input_file)
rows = [row for i, row in enumerate(reader) if i in lines_to_keep]
# Replace spaces with semicolons
for i, row in enumerate(rows):
rows[i] = [cell.replace(' ', ';') for cell in row]
with open(output_file_path, 'w', newline='') as output_file:
writer = csv.writer(output_file, delimiter=';')
writer.writerows(rows)
input_folder = 'C:\\Users\\DR16707\\Desktop\\Piweb_Import'
output_folder = 'C:\\Users\\DR16707\\Desktop\\_importConfig'
# Make sure the output folder exists, create it if it doesn't
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# Loop through all the CSV files in the input folder
for file_name in os.listdir(input_folder):
if file_name.endswith('.csv'):
input_path = os.path.join(input_folder, file_name)
output_path = os.path.join(output_folder, file_name)
# Filter the CSV file and keep only the specified lines
filter_csv(input_path, output_path)
1条答案
按热度按时间6qqygrtg1#
如果你想过滤特定的列和行,你可以将文本文件作为pandas Dataframe读取,并使用
filter()
方法来过滤行和列: