我是python的新手(编码,就此而言)。 我可以请一些帮助,我怎样才能实现这一目标。我经历了很多线程,但没有任何帮助。
我的输入文件如下所示:
我希望我的输出文件看起来像这样:
只需复制第一列,在第二个Excel工作表中复制两次。每5行后有一行。
答案 0 :(得分:0)
可以使用普通文本编辑器打开.csv文件,执行此操作,您将看到每列的条目以逗号分隔(csv =逗号分隔值)。不过,很可能是它的分号;
。
由于您不熟悉编码,我建议您首先使用文本编辑器手动尝试,直到获得所需的输出,然后尝试使用python进行复制。
此外,您应该在此处发布代码示例,并询问有关其为何无法正常工作的具体问题。
答案 1 :(得分:0)
以下是解决方案。不要忘记配置输入/输出文件和分隔符:
input_file = 'c:\Temp\input.csv'
output_file = 'c:\Temp\output.csv'
delimiter = ';'
i = 0
output_data = ''
with open(input_file) as f:
for line in f:
i += 1
output_data += line.strip() + delimiter + line
if i == 5:
output_data += '\n'
i = 0
with open(output_file, 'w') as file_:
file_.write(output_data)
答案 2 :(得分:0)
Python有一个csv
模块用于执行此操作。它能够自动将每行读入列列表。然后可以简单地取出第一个元素并将其复制到输出文件的第二列中。
import csv
with open('input.csv', 'rb') as f_input:
csv_input = csv.reader(f_input)
input_rows = list(csv_input)
with open('output.csv', 'wb') as f_output:
csv_output = csv.writer(f_output)
for line, row in enumerate(input_rows, start=1):
csv_output.writerow([row[0], row[0]])
if line % 5 == 0:
csv_output.writerow([])
请注意,建议不要直接在输入文件上写入更新的数据,就好像存在丢失原始文件的问题一样。
如果您的输入文件有多列,则此脚本将删除它们并简单地复制第一列。
默认情况下,csv
格式使用逗号分隔每个列,可以通过指定所需的分隔符来修改,如下所示:
csv_output = csv.writer(f_output, delimiter=';')