我在将最新的座位更新保存到我的CSV文件时遇到问题。 我希望用户预订的每个席位都能收到CSV文件文件中的更改。 示例:如果用户预订A1座位,则A1为CSV文件将替换为X。
我的程序目标是读取csv文件并将其存储,然后在以后进行替换。每排有5个座位。 A1-A5是商务舱的第一行,B1-B5是第二行商务舱。我希望程序用“ X”代替已占用/预订的座位。 示例:A1 | X | A3 | A4 | A5(A2不可用,已被占用)
这是我的代码:
seat =[]
csvfile = open('coba.csv')
seating = csv.reader(csvfile)
for line in seating:
seat.append(line)
print("Buy seat ?")
answer_1 = input("Answer : ")
if (answer_1 == "yes"):
answer_2 = input("Enter preferred seat: ")
if (answer_2 == "A1"):
row = 1
column = 0
seat[row][column] = "X"
for line in seat:
print(' | '.join(line))
writer = csv.writer(open('coba.csv', 'w'))
writer.writerows(line)
我的CSV文件:
[Business]
A1,A2,A3,A4,A5
B1,B2,B3,B4,B5
[Economy]
C1,C2,C3,C4,C5
D1,D2,D3,D4,D5
E1,E2,E3,E4,E5
错误:
PermissionError:[Errno 13]权限被拒绝:'coba.csv'
预先感谢
答案 0 :(得分:1)
我认为您有错别字。您应该检查len(line)
而不是len(seating)
,并且还应该使用seat
import csv
def load():
seat = []
csvfile = open('x.csv')
seating = csv.reader(csvfile)
for line in seating:
if len(line) == 5:
seat.append(line)
print(seat)
load()
答案 1 :(得分:0)
这给出了A列的前5行:
from pandas import read_csv
data = read_csv('name.csv')
result = []
for i in range(5):
result.append(data['A1'][i])
答案 2 :(得分:0)
第一行在csv中作为行无效的问题
(使用熊猫)可以做到这一点:
import pandas as pd
df = pd.read_csv('coba.csv', header=None, skiprows=[0], sep=',')
print(df)
或者您可以跳过阅读代码的第一行。
答案 3 :(得分:0)
用每行列表填充座位列表
seats = []
with open('file.csv', 'rb') as csvfile:
csvreader = csv.reader(csvfile, delimiter=',')
for row in csvreader:
line = tuple(row)
if len(line) == 5:
seat.append(list(line))
遍历列表中的每一行,并将其更改为所需的内容。
答案 4 :(得分:-1)
这只是代码的修复。您可以在object of type '_csv.reader' has no len(), csv data not recognized上找到问题解决的50%。
对于您要寻找的东西有更好的解决方案。
将seat
初始化为[]
,因为我们知道元组()
是不可变的。
seating
是一个迭代器,因此,如果要计算长度,请将其转换为列表。
coba.py
import csv
def load():
seat = []
csvfile = open('coba.csv')
seating = csv.reader(csvfile)
print(type(seating))
seating = list(seating)
print(type(seating))
for line in seating:
print(seating)
if len(line[0].split(',')) == 5:
#print(' | '.join(row))
seat.append(line)
print(seat)
load()
"""
<class '_csv.reader'>
<class 'list'>
[['[BUSINESS]'], ['A1,A2,A3,A4,A5'], ['B1,B2,B3,B4,B5']]
[['[BUSINESS]'], ['A1,A2,A3,A4,A5'], ['B1,B2,B3,B4,B5']]
[['[BUSINESS]'], ['A1,A2,A3,A4,A5'], ['B1,B2,B3,B4,B5']]
[['A1,A2,A3,A4,A5'], ['B1,B2,B3,B4,B5']]
"""