Python 在变量中搜索不同的字符串长度

Python 在变量中搜索不同的字符串长度,python,Python,对于可变电话号码,它要求提供整个电话号码;像这样的:029123456。但是,我只需要第一个区号。但是也可以有这样的区号:01845 123456,其字符数与区号不同。我如何得到它,使它只在变量中存储区号 以下是一个小样本: PhoneCode、区域、示例、纬度、经度 利兹,(0113)xxx xxxx,53.801279,-1.548567 谢菲尔德114号,(0114)xxx xxxx,53.381129,-1.470085 诺丁汉115号,(0115)xxx xxxx,52.95477,-

对于可变电话号码,它要求提供整个电话号码;像这样的:029123456。但是,我只需要第一个区号。但是也可以有这样的区号:01845 123456,其字符数与区号不同。我如何得到它,使它只在变量中存储区号

以下是一个小样本:

PhoneCode、区域、示例、纬度、经度
利兹,(0113)xxx xxxx,53.801279,-1.548567
谢菲尔德114号,(0114)xxx xxxx,53.381129,-1.470085
诺丁汉115号,(0115)xxx xxxx,52.95477,-1.158086
莱斯特116号,(0116)xxx xxxx,52.636878,-1.139759
布里斯托尔117号,(0117)xxx xxxx,51.454513,-2.58791
118读,(0118)xxx xxxx,51.452884,-0.973906
克利瑟罗1200号,(01200)xxxxxx,53.871098,-2.393083
伯恩茅斯1202号,(01202)xxxxxx,50.719164,-1.880769
波顿1204号,(01204)xxxxxx,53.584441,-2.428619
以下是我目前掌握的代码:

phoneNumber = input("Enter your phone number (UK landline only):")

file = open("phonecodes.csv","r")

#Complete the code here
for line in file:
  data = line.split(",")
  areaCode = data[0]
  if phoneNumber == "0" + areaCode:
    print data[1]

file.close()

让用户先输入区号,然后分别输入号码,或者让他们先输入区号,然后输入空格,然后输入号码并拆分:

分别:

area = raw_input("Enter your area code: ")
num = raw_input("Enter you phone number: ")


import csv

r = csv.reader(open("phonecodes.csv"))
for ph_cde, ar_cde, ex, lat, lon in r:
    if "0" + ph_cde ==  area:
       ........
拆分:

area, num = raw_input("Enter your phone number (UK landline only) in format 

AREA NUM:").split()


import csv

r = csv.reader(open("phonecodes.csv"))
for ph_cde, ar_cde, ex, lat, lon in r:
   if "0" + ph_cde ==  area:
        .........

您的数据以逗号分隔,因此csv模块将为您拆分为列。我还使用了原始输入,因为您的打印语句表明您使用的是python2而不是python3。

它们都在单独的列中,所以只需提取您想要的列,使用csv模块进行注释:1)不要使用
文件作为变量名;使用内置变量作为变量名是个坏主意。2) 
f=open(路径)。。。f、 close()
设计是一种反模式;最好使用带有open(path)的
作为f:…
,这样可以确保文件始终处于关闭状态。@Padraic Cunningham谢谢,但这不是我要问的。我问的是如何只存储电话号码中的区号,而不是整个号码。因此,它不是存储029 123456,而是只存储029。@alexwlchan感谢您的提示。您是说用户输入的电话号码,还是说csv中的所有数据都在单独的列中?