python取csv固定列重写csv文件
时间: 2023-06-09 22:04:47 浏览: 56
好的,您可以尝试以下 Python 代码来实现取 CSV 文件中的固定列并将其重写到相同的 CSV 文件中:
```python
import csv
# 打开 CSV 文件
with open('file.csv', 'r') as csv_file:
reader = csv.reader(csv_file)
# 创建新的 CSV 文件
with open('new_file.csv', 'w', newline='') as new_csv_file:
writer = csv.writer(new_csv_file)
# 获取要重写的固定列
for row in reader:
column_to_write = row[1] # 修改 1 以获取不同的列
writer.writerow([column_to_write])
```
请将 "file.csv" 替换为您要修改的 CSV 文件的名称,"new_file.csv" 替换为您要创建的新 CSV 文件的名称,"1" 替换为您想要获取的特定列的索引(从零开始)。
相关问题
python取csv固定多列重写csv文件
好的,针对您的问题,我可以提供以下Python代码实现:
```
import csv
# 定义需要读取的列索引,这里选择1, 3和4列
columns = [1, 3, 4]
# 定义输入和输出文件路径
input_file = 'input.csv'
output_file = 'output.csv'
# 读取输入文件,并仅保留指定列
with open(input_file) as csv_file, open(output_file, 'w', newline='') as output:
reader = csv.reader(csv_file)
writer = csv.writer(output)
for row in reader:
output_row = [row[i] for i in columns]
writer.writerow(output_row)
```
在上面的代码中,我们首先定义要读取的列索引,然后指定输入和输出文件的路径。接下来,使用Python的csv模块读取输入文件,并仅保留指定列。最后,将结果写入输出文件中。此外,我们还指定了`newline`参数,这是为了避免在Windows系统上出现行结束符问题。
希望这可以回答您的问题。如果您需要进一步的帮助,请随时告诉我。
python按固定列拆分csv文件
如果你需要按照固定的列数进行拆分 CSV 文件,你可以使用 Python 自带的 csv 模块来读取和处理 CSV 文件,然后将每个拆分后的子文件中的行数写入指定的文件中。下面是一个示例代码:
```python
import csv
# 读取 CSV 文件
with open('input.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
# 获取 CSV 表头
headers = next(reader)
# 设置拆分的列数
split_columns = 3
# 设置每个拆分后的子文件中的行数
split_size = 1000
# 创建拆分后的 CSV 文件
split_files = [open(f'output_{i}.csv', 'w', newline='') for i in range(split_columns)]
writers = [csv.writer(file) for file in split_files]
# 写入 CSV 表头
for writer in writers:
writer.writerow(headers)
# 拆分 CSV 文件
count = 0
for row in reader:
for i in range(split_columns):
writers[i].writerow([row[j] for j in range(i, len(row), split_columns)])
count += 1
# 每写入 split_size 行就将行数写入指定的文件中
if count % split_size == 0:
with open('rows_count.txt', 'a') as f:
f.write(f'{count}\n')
# 关闭拆分后的 CSV 文件
for file in split_files:
file.close()
```
上述代码将 `input.csv` 文件按照每 3 列进行拆分,并将拆分后的子文件命名为 `output_0.csv`、`output_1.csv` 和 `output_2.csv`。每个拆分后的子文件中最多包含 1000 行,当写入的行数达到 1000 行时,将行数写入 `rows_count.txt` 文件中。你可以根据自己的需求修改拆分的列数、拆分后的文件名和每个拆分后的子文件中的行数。