最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Python如何从文件中读取数据

    正文概述    2020-03-05   223

    Python如何从文件中读取数据

    从文件中读取数据

    1. 读取整个文件

    要读取文件,首先来创建一个文件:

    然后打开并读取这个文件,再将其内容显示到屏幕上:

    file_reader.py
    with open('pi_digits.txt') as file_object:
        contents = file_object.read()
        print(contents)

    解读上述代码:

    open( ) -> 要以任何方式使用文件,都首先得打开文件,这样才能访问它,此时就需要用到函数open(),该函数只接受一个参数:要打开文件的名称,同时返回表示文件的对象。

    with: 不再需要访问文件后调用 close( ) 将其关闭。

    read( ) ->读取文件中的全部内容。

    运行结果:

    3.1415926535
      8979323946
      2643383278

    2. 文件路径

    要让python打开不与程序文件位于同一目录中的文件,需要提供文件路径,让python到系统的特定位置去查找。

    文件路径的表示:

    1. 相对路径 -> 文件相对于当前运行程序所在的目录。eg. 在程序所在文件夹C:\Users\yxf\Desktop\python_pycharm新建一个文件夹text_file用于存储文件pi_digits.txt,此时就需要这样编写代码:

    with open('text_files\pi_digits.txt') as file_object:

    2. 绝对文件路径 -> 文件所在完整路径。绝对路径比相对路径更长,故可将路径存储在一个变量中,再将变量传递给 open( ):

    file_path = r'C:\Users\yxf\Desktop\python_pycharm\text_files\pi_digits.txt'
    with open(file_path) as file_object:

    由于文件路径中使用的是反斜杠,在python中被视为转义字符,故需要在开头的单引号前加上r。

    相关推荐:《Python视频教程》

    3. 逐行读取

    每次以一行的方式检查文件:

    file_name = 'pi_digits.txt'
    with open(file_name) as file_object:
        for line in file_object:
            print(line)

     运行结果:

    3.1415926535
      8979323946
      2643383278

    通过对文件对象使用for循环来遍历文件中的每一行,但运行结果显示的每一行后边多了空白行,这是为什么呢?文件中每行的末尾都有一个看不见的换行符,而print语句也会加上一个换行符。为消除这些空白行,可在print语句中使用 rstrip( ):

    print(line.rstrip())

    这样输出与文件内容就完全相同了。

    4. 创建一个包含文件各行内容的列表

    file_name = 'pi_digits.txt'
    with open(file_name) as file_object:
        lines = file_object.readlines()
    for line in lines:
        print(line.rstrip())

    方法readlines():从文件中读取每一行,并将其存储在列表中。

    5. 使用文件的内容

    file_name = 'pi_digits.txt'
    with open(file_name) as file_object:
        lines = file_object.readlines()    # 将文件内容存储在列表中
    pi_string = ''    # 新建一个空字符串
    for line in lines:
        pi_string = pi_string + line.rstrip()    # 删除空白行并转换为字符串
    print(pi_string)    # 打印字符串
    print(len(pi_string))    # 打印字符串长度

    运行结果:

    3.1415926535  8979323946  2643383278
    36

     运行结果中包含了位于每行左边的空格,为删除这些空格,可使用 strip() 而不是 rstrip(),运行可得:

    3.141592653589793239462643383278
    32

    6. 包含一百万位的大型数据

    一百万位的文件下载过慢,就复制使用了其中的一小部分,并打印到小数点后的50位:

    file_name = 'pi_xx_digits.txt'
    with open(file_name) as file_object:
        lines = file_object.readlines()  # 将文件内容存储在列表中
    pi_string = ''  # 新建一个空字符串
    for line in lines:
        pi_string = pi_string + line.strip()  # 删除空白行并转换为字符串
    print(pi_string[: 52])  # 打印字符串
    print(len(pi_string))  # 打印字符串长度

    运行结果:

    3.14159265358979323846264338327950288419716939937510
    1483

    由运行结果可知保存了小数点后的1481位在文件 pi_xx_digits.txt 中。

    7. 圆周率中包含你的生日吗

    可以检测圆周率值的前1483位中是否包含自己的生日:

    file_name = 'pi_xx_digits.txt'
    with open(file_name) as file_object:
        lines = file_object.readlines()
    pi_string = ''
    for line in lines:
        pi_string = pi_string + line.strip()
    birthday = input('Enter your birthday, in the form mmddyy: ')
    if birthday in pi_string:
        print('Your birthday appears in the first 1483 digits of pi!')
    else:
        print('Your birthday does not appears in the first 1483 digits of pi.')

    起源地下载网 » Python如何从文件中读取数据

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元