Python读取数组中的文件时出错
我的档案:Python读取数组中的文件时出错,python,arrays,file,Python,Arrays,File,我的档案: Offices 10 MedicalOffice 15 PostOffice 30 Mall 200 如何使python只读取第二列。 例如: 10 15 30 200 我试过可能的方法让它只读,10,15,30等等。。。而不是名字。我试过这个,没有名字,效果很好。但是我需要在文本文件中包含这些名字。有什么帮助吗?谢谢 def something(file1): with file1 as f: nums = [int(line) for line in
Offices 10
MedicalOffice 15
PostOffice 30
Mall 200
如何使python只读取第二列。
例如:
10
15
30
200
我试过可能的方法让它只读,10,15,30等等。。。而不是名字。我试过这个,没有名字,效果很好。但是我需要在文本文件中包含这些名字。有什么帮助吗?谢谢
def something(file1):
with file1 as f:
nums = [int(line) for line in f]
print("Read from File: ", nums)
textFileName = input("Enter the filename: ")
file1 = open(textFileName)
something(file1)
谢谢。你不能只看第二栏 但您可以同时读取这两列,忽略第一列,只使用第二列 例如:
def something(file1):
with file1 as f:
lines = (line.partition(' ') for line in f)
nums = [int(line[-1]) for line in lines)
print("Read from File: ", nums)
我分两步完成了这项工作,只是为了更容易地看到新的部分(分区与已有的部分(int
)。如果您愿意,您可以将其全部填充到一个listcomp中:
nums = [int(line.partition(' ')[-1]) for line in f]
无论如何,
partition
在第一个空格处分割每一行,因此您可以得到,例如,('Offices','10')
。[-1]
取最后一部分,即'10'
。还有int
,你已经知道了 您不能只读取第二列
但您可以同时读取这两列,忽略第一列,只使用第二列
例如:
def something(file1):
with file1 as f:
lines = (line.partition(' ') for line in f)
nums = [int(line[-1]) for line in lines)
print("Read from File: ", nums)
我分两步完成了这项工作,只是为了更容易地看到新的部分(分区与已有的部分(int
)。如果您愿意,您可以将其全部填充到一个listcomp中:
nums = [int(line.partition(' ')[-1]) for line in f]
无论如何,
partition
在第一个空格处分割每一行,因此您可以得到,例如,('Offices','10')
。[-1]
取最后一部分,即'10'
。还有int
,你已经知道了 要读取第二列,请拆分行并获取第二个字段:
[x.split()[1] for x in open(textFileName,"r")]
如果您想要数字,只需调用int:
[int(x.split()[1]) for x in open(textFileName,"r")]
要读取第二列,请拆分行并获取第二个字段:
[x.split()[1] for x in open(textFileName,"r")]
如果您想要数字,只需调用int:
[int(x.split()[1]) for x in open(textFileName,"r")]
与@Nirk的答案类似,但改进了文件处理:
with open('/path/to/file.txt', 'r') as f:
nums = [x.strip().split()[-1] for x in f]
与@Nirk的答案类似,但改进了文件处理:
with open('/path/to/file.txt', 'r') as f:
nums = [x.strip().split()[-1] for x in f]
这是第二栏。第二排是
MedicalOffice 15
@abarnert good catch。我的打字错误。谢谢你提醒我!是的,我认为这只是一个输入错误,但修复它总比迷惑未来的读者要好……同时,你可能不想在顶层执行打开
,也不想在函数内部执行。这基本上是可行的,只要在这种情况下你只调用某个东西,但这很奇怪。通常,您希望在with
语句中直接打开。要么将open(textFileName)作为file1:something(file1)
,然后something
没有带有的,要么只是something(textFileName)
和内部something
以打开文件。(这很难在评论中解释;希望你明白了?)这是第二栏。第二排是MedicalOffice 15
@abarnert good catch。我的打字错误。谢谢你提醒我!是的,我认为这只是一个输入错误,但修复它总比迷惑未来的读者要好……同时,你可能不想在顶层执行打开
,也不想在函数内部执行。这基本上是可行的,只要在这种情况下你只调用某个东西,但这很奇怪。通常,您希望在with
语句中直接打开。要么将open(textFileName)作为file1:something(file1)
,然后something
没有带有的,要么只是something(textFileName)
和内部something
以打开文件。(这很难在评论中解释,希望你能理解。)为什么要在这里添加.readlines()
?这不是最初的问题,它所做的只是让程序使用更多的内存和CPU(以及更多的输入),而没有任何好处。为什么要在这里添加.readlines()
?它不在最初的问题中,它所做的只是让程序使用更多的内存和更多的CPU(以及更多的输入),而没有任何好处。