python csv在指定列写入
时间: 2023-07-28 18:48:03 浏览: 51
如果你想在 CSV 文件的指定列中写入数据,你可以使用 Python 自带的 csv 模块。以下是一个例子,假设我们有一个名为 "data.csv" 的 CSV 文件,其中包含三列数据 "姓名"、"年龄" 和 "性别":
```
姓名,年龄,性别
张三,18,男
李四,20,女
王五,22,男
```
现在,我们想在 "年龄" 列中写入新的数据。可以使用以下代码:
```python
import csv
# 打开 CSV 文件
with open('data.csv', 'r', newline='') as file:
reader = csv.reader(file)
# 读取 CSV 文件中的数据
rows = []
for row in reader:
rows.append(row)
# 在指定列中写入数据
for i in range(1, len(rows)):
rows[i][1] = str(int(rows[i][1]) + 1)
# 保存修改后的数据到 CSV 文件中
with open('data.csv', 'w', newline='') as file:
writer = csv.writer(file)
writer.writerows(rows)
```
以上代码将会把 "年龄" 列中的数据都加 1,并写回到原始的 CSV 文件中。
相关问题
pythoncsv在指定位置写入
要在指定位置写入CSV文件,可以使用Python标准库中的csv模块和文件对象的seek方法。
首先,您需要打开CSV文件并将文件指针移动到要写入的位置。例如,要将数据写入CSV文件的第三行和第四列中,可以使用以下代码:
```python
import csv
with open('data.csv', 'r+', newline='') as csvfile:
reader = csv.reader(csvfile)
writer = csv.writer(csvfile)
# 移动文件指针到第三行
csvfile.seek(0)
for i in range(2):
next(reader)
# 读取第三行的数据
row = next(reader)
# 将数据写入第四列
row[3] = 'New Data'
# 移动文件指针到第三行的开头
csvfile.seek(0)
for i in range(2):
writer.writerow(next(reader))
# 写入修改后的第三行数据
writer.writerow(row)
# 将文件指针移动到下一行
for row in reader:
writer.writerow(row)
```
在上面的代码中,我们首先使用`csv.reader`对象来读取CSV文件中的数据。然后,我们使用`csv.writer`对象将修改后的数据写回CSV文件。在写入数据之前,我们使用`seek`方法将文件指针移动到要修改的行。然后,我们使用`next`方法来读取CSV文件中的下一行数据,直到移动到要修改的行。修改数据后,我们使用`seek`方法将文件指针移动回要修改的行的开头,并使用`csv.writer`对象将修改后的行写回CSV文件。最后,我们使用`next`方法读取剩余的行,并将它们写回CSV文件。
请注意,当您使用`csv.writer`对象写入修改后的数据时,它将覆盖CSV文件中的原始数据。因此,在写入数据之前,您可能需要将CSV文件中的原始数据保存到另一个变量中,以便在修改数据时不会丢失原始数据。
python csv如何按列写入
您可以使用Python内置的`csv`模块来按列写入CSV文件。下面是一个示例代码:
```python
import csv
# 定义要写入的数据
data = [
['John', 'Doe', 30],
['Jane', 'Smith', 25],
['Tom', 'Johnson', 35]
]
# 打开文件进行写入
with open('output.csv', 'w', newline='') as file:
writer = csv.writer(file)
# 将每一列写入文件
for col in zip(*data):
writer.writerow(col)
```
在上面的示例中,我们首先定义了要写入的数据。然后,我们使用`open`函数打开一个名为`output.csv`的文件,设置模式为写入模式。接下来,我们创建一个`csv.writer`对象,并将其与打开的文件关联。
最后,我们使用`zip(*data)`将每一列数据重新排列,并使用`writer.writerow()`方法将每一列写入文件中。请注意,`zip(*data)`用于将二维列表的行和列进行转置。
运行上述代码后,将生成一个名为`output.csv`的CSV文件,其中包含按列排列的数据。
希望对您有所帮助!如果您还有其他问题,请随时提问。