2017-05-14 30 views
-1

我是python的新手,我需要这个测试。 我有两个txt文件,其中有一个电影院的座位数据。 我正在尝试打开文件,读取所拍摄的座位以及那些免费且想要存储此信息的座位。在Python中打开一个.txt文件并分别读取每个字符并存储它

的TXT看起来有点像这样:

xxxxooxoxxx 
xooxoxxoxox 
ooxxxoxooxx 

邻s为在座椅是免费的,X-S取。 所以第二次原料的第一个席位被占用,但第三个和第四个是免费的。

我不知道如何正确存储数据或按字符打开文件字符我猜。我真的不知道如何开始。

+0

我不知道为什么你认为你必须按字符读取文件字符才能实现你的目标。为什么不逐行阅读文件,然后检查每一行的所有字符? – timgeb

+0

我也不确定你的问题到底是什么,因为你没有给我们任何具体的结果/输出的示例txt文件。 – timgeb

+0

你能更清楚地定义这个问题吗?你在问如何读取文件?或者如何保存文件?或者如何分离文件中的不同值? –

回答

4

我希望我能正确理解你的问题。如果你的文件不是非常大(超过几百MB),那么你可以优先读取整个文件并将其内容存储到一个变量中。

假设这个txt文件保存为data.txt。然后你可以用这两行打开一个文件:

with open('data.txt') as f: 
    data = f.readlines() 

数据现在是行列表。

>>> data 
['xxxxooxoxxx\n', 'xooxoxxoxox\n', 'ooxxxoxooxx\n'] 

现在,我会将数据列表转换为布尔值的2d数组。这是一个丑陋的一个班轮:

>>> taken = [[seat == 'x' for seat in row.rstrip()] for row in data] 

现在你可以决定是否座椅采取或不喜欢这样的:

>>> taken[1][1] 
False 
>>> taken[1][0] 
True 
+0

谢谢,你真棒。 这个想法有点太复杂了,但我看了一个YT vid,明白你在这里解释的是什么,现在我确实正是我所需要的。 谢谢! –

+0

@BotondHorváth不要忘记接受这个答案,如果它解决了你的问题。它会标记此问题已解决 –

+0

@matejm您正在使用一个丑陋的单线程引用您的话。由于我对此有点新,所以我想了解并提出一些我可以更好地看到的内容,而不仅仅是复制和粘贴。 onestring = foglaltsag.readline() 字符串= foglaltsag.readlines() allseats = “”。加入(字符串) 行数= [] 座椅= [] 炭= 300 原始= 0 N1 = 0 N2 = 0 而N 2 = 20: 而LEN(座椅)= 15: seattype = allseats [N1] seats.append(seattype) N1 = N1 + LEN(onestring) N2 = N2 + 1 n1 = original + 1 original = original + 1 –

0

要打开同一目录中的Python文件的文件,使用

file=open("file.txt","r") 
file1=file.read() 

这是你如何打开读模式文件(r)。现在你想有一个字符列表,所以你可以使用列表功能。

file1=list(file1) 

现在你得到所有字符的列表。如果你想用换行符分割它,而不是使用列表,请使用split。

file1=file1.split('\n') 

最后,关闭文件。

file.close() 
0

可以读取一个文件在python 开放功能带“R”选项:

with open("file.txt", 'r') as f: 
    for row in f: 
     for each_char in str(row): 
      print each_char 
      # Here use your statement 
相关问题