python读取linux文件_python读取文件夹文件linux - CSDN
精华内容
参与话题
  • python 读取Linux服务器上的文件

    千次阅读 2017-12-12 16:16:59
    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现: 下载包:paramiko import paramiko #服务器信息,主机名(IP地址)、端口号、用户名及密码 hostname = "" port = 22 username = ...

    使用Python语句,读取Linux远端服务器上的文件打印到控制台的代码实现:

    下载包:paramiko


    import paramiko

    #服务器信息,主机名(IP地址)、端口号、用户名及密码
    hostname = ""
    port = 22
    username = ""
    password = ""


    client = paramiko.SSHClient()
    client.set_missing_host_key_policy(paramiko.AutoAddPolicy())
    client.connect(hostname, port, username, password, compress=True)
    sftp_client = client.open_sftp()
    remote_file = sftp_client.open("/home/...txt")#文件路径
    try:
        for line in remote_file:
            print(line)
    finally:
        remote_file.close()

    展开全文
  • 2019独角兽企业重金招聘Python工程师标准>>> ...

    在linux上用PHP读取WORD文档,其实是使用了 antiword程序把word文档转化为txt文档。

     

    再使用php执行系统命令调用而已。

     

    具体操作如下:

     

    1、安装antiword

     

    官方站:http://www.winfield.demon.nl/

     

    下载地:http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz

     

    下载完,解压,进入目录

     

    tar xvzf antiword-0.37.tar.gz

     

    cd antiword-0.37

     

    make && make install

     

    即可完成安装。

     

    安装时,自动安装到了/root/目录下,只有root才可执行该命令,我们需要改一下路径,COPY到/usr中方便调用。

     

    cp /root/bin/*antiword /usr/local/bin/
    mkdir /usr/share/antiword
    cp -R /root/.antiword/* /usr/share/antiword/
    chmod 777 /usr/local/bin/*antiword
    chmod 755 /usr/share/antiword/*

     

    以上操作以后即可在任意用户调用 antiword命令。

    linux 平台转换txt:

    # coding:utf-8
    #!/user/bin/python
    import subprocess
    import tempfile
    def chang2txtbyantiword(fpath, tpath):
        """通过antiword读取doc,需要安装antiword,目前仅用于linux(详情见:http://www.winfield.demon.nl)
        wget http://www.winfield.demon.nl/linux/antiword-0.37.tar.gz
        tar -xvf antiword-0.37.tar.gz
        cd antiword-0.37
        make && make install 
        @param fp: 相对文件路径"""
        try:
            com = "antiword -m UTF-8.txt -t " + fpath + " > "+ tpath
            out_temp = tempfile.SpooledTemporaryFile(bufsize=10*1000)
            fileno = out_temp.fileno()
            obj  = subprocess.Popen(com, shell=True,stdout=fileno,stderr=fileno)
            output = obj .wait()
            out_temp.seek(0)
            lines = out_temp.readlines()
    
            if output == 0:  # 执行成功
                return True
            return False
        except:
            return False
        finally:
            if out_temp:
                out_temp.close()
    
    a = "/data/appsystems/appSvr00/media/upload/doc/20170510/71d60eb8-3564-11e7-995c-000c29eb773f.doc"
    b = "/data/appsystems/appSvr00/media/upload/txt/20170510/71d60eb8-3564-11e7-995c-000c29eb773f.txt"
    chang2txtbyantiword(a, b)

    直接读取doc文件:

    # -*- encoding: utf8 -*-
    import subprocess
    output = subprocess.check_output(["antiword", "test.doc"])

    windows doc转docx:

    # coding:utf-8
    #!/user/bin/python
    def changedoc2docxbywin32(fpath, tpath):
        """把doc文件转换为docx因为用到win32com,所以仅支持windows系统
        @param fpath: 文件绝对路径,不能包含中文
        @param tpath: 文件绝对保存路径,不能包含中文"""
        try:
            from win32com import client
            import pythoncom
            pythoncom.CoInitialize()
            word = client.DispatchEx('Word.Application')  # 独立进程
            word.Visible = 0    # 不显示
            word.DisplayAlerts = 0  # 不警告
            doc = word.Documents.Open(fpath)
            doc.SaveAs(tpath, 12)  # 参数16是保存为doc,转化成docx是12
            doc.Close()
            word.Quit()
            return True
        except:
            if doc:
                doc.Close()
            word.Quit()
            return False

     

    读取docx和txt

    # coding:utf-8
    # !/user/bin/python
    import os
    from docx import Document
    def readDocx(docName, separated_rows=0, addStr=''):
        """获取docx的文档中的所有文字,不管格式,暂不支持doc格式每line行
        @param separated_rows: int 相隔行数
        @param addStr: str 追加的字符
        """
        TotalPage = 1  # 页数
        extension = os.path.splitext(docName)[1]  # 文件后缀名
        separated_rows = int(separated_rows)  # 需要隔separated_rows行追加字符
        if extension == ".txt":
            with open(docName) as f:
                if separated_rows != 0:  # 需要隔行追加字符
                    docText = '<br>'.join(
                        paragraph + addStr if index % separated_rows == 0 else paragraph for index, paragraph in
                        enumerate(f))
                    docText = docText.replace(addStr, "", 1)  # 第一行不需要分页符
                    TotalPage = docText.count(addStr) + 1  # 页数统计
                else:
                    docText = '<br>'.join(paragraph for paragraph in f)  # 生成迭代器,然后加入回车换行,比起生成列表需要更少内存,此情况迭代器的括号可省略
        elif extension == ".docx":
            paras = Document(docName)
            if separated_rows != 0:  # 需要隔行追加字符
                docText = '<br>'.join(
                    paragraph.text.encode('utf-8') + addStr if index % separated_rows == 0 else paragraph.text.encode(
                        'utf-8') for index, paragraph in enumerate(paras.paragraphs))
                docText = docText.replace(addStr, "", 1)  # 第一行不需要分页符
                TotalPage = docText.count(addStr) + 1  # 页数统计
            else:
                docText = '<br>'.join(paragraph.text.encode('utf-8') for paragraph in
                                      paras.paragraphs)  # 生成迭代器,然后加入回车换行,比起生成列表需要更少内存,此情况迭代器的括号可省略
        else:
            docText = ""
        return docText, TotalPage

     

    转载于:https://my.oschina.net/yves175/blog/897398

    展开全文
  • 今天小编就为大家分享一篇python 读取Linux服务器上的文件方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
  • NULL 博文链接:https://sogo6.iteye.com/blog/1184188
  • pyhton文件读取:导入需要用到的package定义文件路径读取文件利用file(open)方法读取pandas读取csv文件写在最后 导入需要用到的package import os import pandas as pd 定义文件路径 pythonlinux系统上进去文件I/...

    导入需要用到的package

    import os
    import pandas as pd
    

    定义文件路径

    python在linux系统上进去文件I/O操作时,可以有多种方式定义文件路径,这里给出两种:

    路径的一般范式: /home/login_user_account/directory_a/…/directory_n/filename.*****
            /主目录/登录账号名/文件夹a/…/文件夹n/文件名及其格式

    1. 方式一:

      path = '/home/test/test'
      file_name = os.path.join(path, 'testfile.txt')
      file_name_csv = os.path.join(path, 'test_csv_file.csv')
      
    2. 方式二:

      path = os.path.join(os.sep, 'home', 'test', 'test')
      file_name = os.path.join(path, 'testfile.txt')
      file_name_csv = os.path.join(path, 'test_csv_file.csv')
      

    读取文件

    1. 利用file(open)方法读取

      # with结构读取文件:打开文件且当文件读取完毕后自动关闭文件
      with file(file_name, 'r+') as inf:
      	for line in inf.readlines():	# 读取txt文档中的每一行并在清除行右侧空白符后打印出来
      		print line.rstrip()
      
      
    2. pandas读取csv文件

      # 利用pandas读取指定路径下指定的csv文件
      df = pd.read_csv(file_csv_name)
      print df.head()	# 打印出已读取csv文档的前5行,是Dataframe格式的数据
      

    写在最后

    对于python编程笔者还是小学生一枚,不敢高谈教化,只希冀将自己的理解能解释清楚。
    读到此处的您,如果我的理解对解答您的问题有所帮助,那我将是很开心的。
    能力一般,水平有限,可优化的地方千千…请指正!

    祝好!

    展开全文
  • 一、文件操作 操作文件的函数/方法 ... read :将文件内容读取到内存  write :将指定内容写入文件  close :关闭文件 open函数负责打开文件,宾且返回文件对象 read/write/close三个方法都需要通过文件...

    一、文件操作

    操作文件的函数/方法
    在python中要操作文件需要记住的1个函数和3个方法
        #python中一切皆对象
        open  :打开文件,并且返回文件操作对象
        read  :将文件内容读取到内存
        write :将指定内容写入文件
        close :关闭文件
    open函数负责打开文件,宾且返回文件对象
    read/write/close三个方法都需要通过文件对象来调用


    read方法--读取文件
    open函数的第一个参数是要打开的文件名(文件名区分大小写)
        如果文件存在,返回文件操作对象
        如果文件不存在,会抛出异常
    read方法可以一次性读入并返回文件的所有内容
    close方法负责关闭文件

    """
    1、# 如果忘记关闭文件,会造成系统消耗,而且会影响到后续对文件的访问
    # 1.打开文件
    file = open('REDME')

    # 2.操作文件 读/写
    # read方法:读取文件内容(一次性返回文件的所有内容)
    text = file.read()
    print text

    # 3.关闭文件
    # close方法:负责关闭文件
    file.close()

    # 在开发中,通常会先编写打开和关闭的代码

    2、

    文件指针:
        文件指针标记从哪个位置开始读取数据
        第一次打开文件时,通常文件指针会指向文件的开始位置
        当执行了read方法后,文件指针会移动到读取内容的末尾
    """
    # 1.打开文件
    file = open('REDME')

    # 2.操作文件 读/写
    # read方法:读取文件内容(一次性返回文件的所有内容)
    text = file.read()
    print text

    print '*' * 50

    # 第一次读取的时候,文件指针移动到了文件的末尾
    # 再次调用不会读取到任何内容

    text = file.read()
    print text

    # 3.关闭文件
    # close方法:负责关闭文件
    file.close()

    3、

    # 1.打开文件
    file = open('/home/kiosk/file')

    # 2.操作文件 读/写
    # read方法:读取文件内容(一次性返回文件的所有内容)
    text = file.read()
    print text

    # 打印输入内容的长度
    print type(text)
    print len(text)

    print '*' * 50
    text = file.read()
    print text
    print len(text)

    # 3.关闭文件
    # close方法:负责关闭文件
    file.close()

    4、

    打开文件的方式:
        name = open('文件名','访问方式')


    """
    # 以写的方式打开文件,如果文件存在会被覆盖,如果文件不存在,创建新文件
    #1.打开文件
    file = open('REDME','w')
    # 2.写入文件
    file.write('hello')
    # 3.关闭文件
    file.close()

    5、

    # 以追加方式打开文件
    # 如果该文件存在,文件指针会放在文件的末尾
    # 如果文件不存在,创建文件并写入
    # 1.打开文件
    file = open('REDME','a')
    # 2.写入文件
    file.write('linux')
    # 3.关闭文件
    file.close()

    6、

    按行读取文件
            read方法默认会把文件的所有内容一次性读到内存
            如果文件太大,对内存的占用会非常严重
    readline方法:
        readline方法可以一次性读取一行内容
        方法执行后,会把文件指针移动到下一行,准备再次读取
    """
    # 读取大文件的正确姿势

    file = open('REDME')
    # 为什么要写成死循环:因为我们不知道要读取的文件有多少行
    while True:
        text = file.readline()
        # 如果文件指针到文件的最后一行,那么就读不到内容了
        if not text:
            break
        # 每读取一个行,末尾都已经有一个\n
        print text
    file.close()

    7、

    # 1.打开文件
    # 源文件以只读的方式打开
    file_read = open('REDME')
    # 目标文件以写的方式打开
    file_write = open('README_COPY','w')

    # 从源文件中读取内容
    text = file_read.read()
    # 将读取到的内容写到目标文件中
    file_write.write(text)

    # 关闭文件
    file_read.close()
    file_write.close()

    8、

    # 1.打开文件
    file_read = open('REDME')
    file_write = open('README_COPY','w')

    # 读写
    while True:
        text = file_read.readline()
        if not text:
            break
        file_write.write(text)

    # 关闭
    file_read.close()
    file_write.close()

    二(文件操作2)

    关键字with在不需要访问文件后将其关闭,在这个程序中,
    我们调用了open(),但没有调用close();你也可以调用open()和close来打开
    和关闭文件,但这样做时,如果程序存在bug,导致close()语句没有执行,
    文件将不会关闭,未妥善地关闭文件可能会导致数据丢失或受损,
    如果在程序中过早地调用close(),
    你会发现需要使用文件时它已经关闭(无法访问),
    这会导致更多地错误,你并非在任何情况下都能轻松地确定关闭文件地恰当时机
    通过使用with结构,可让python去确定,
    你只管打开文件,并在需要时使用它,
    python会在合适的时候自动将其关闭


    """
    1、

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

    2、

    filename = 'pi_digits'
    with open(filename) as file_object:
        for line in file_object:
            print line

    3、

    filename = 'pi_digits'
    with open(filename) as file_object:
        lines = file_object.readline()
    for line in lines:
        print line

    4、

    filename = 'linux'
    with open(filename,'w') as file_object:
        file_object.write('I love python.\n')
        file_object.write('I love linux.')

    5、

    filename = 'linux'
    with open(filename,'a') as file_object:
        file_object.write('I love python.\n')
        file_object.write('I love linux.')

    三、模块

    test1:

    title = '模块1'
    # 函数
    def say_hello():
        print '我是%s' % title
    # 类
    class Cat(object):
        pass

    test2:

    title = '模块2'
    # 函数
    def say_hello():
        print '我是%s' % title
    # 类
    class Dog(object):
        pass

    1、

    # 在导入模块时,每个导入应独占一行
    import test1
    import test2

    test1.say_hello()
    test2.say_hello()

    cat = test1.Cat()
    print cat

    dog = test2.Dog()
    print dog

    2、

    # 使用as指定模块的别名(大驼峰命名法)
    import test1 as CatXi
    import test2 as DogXi

    CatXi.say_hello()
    DogXi.say_hello()

    cat = CatXi.Cat()
    print cat

    dog = DogXi.Dog()
    print dog

    3、

    from test1 import Cat
    from test2 import say_hello

    say_hello()
    miaomiao = Cat()
    print miaomiao

    4、

    from test1 import Cat
    from test2 import say_hello   # 此时test2的say_hello会被覆盖,不能显示
    from test1 import say_hello
    say_hello()
    miaomiao = Cat()
    print miaomiao


    5、

    from test1 import  Cat
    from test2 import say_hello
    from test1  import say_hello  as  test1_say_hello
    say_hello()
    miaomiao = Cat()
    print miaomiao
    test1_say_hello()

    6、

    python的解释器在导入模块的时候,会:
    1、搜索当前目录指定的模块文件,如果有就直接导入
    2、如果没有,再搜索系统目录
    注意:在开发时,给文件起名,不要和系统模块文件重名

    """
    import random
    rand = random.randint(0,10)
    print rand

    test09:

    #全局变量、函数、类直接执行的代码不是向外界提供的工具
    def say_hello():
        print 'hello hello'

    say_hello()

    1、

    import  test09

    test10:

    __name__属性
    可以做到,测试模块的代码只在测试情况下被运行,而在被导入时不会执行
    __name__是python的一个内置属性,记录着一个字符串,如果是被其他文件导入
    时,__name__就是文件名(模块名),如果是当前执行的程序,__name__就是__main__
    """
    #全局变量、函数、类直接执行的代码不是向外界提供的工具
    def say_hello():
        print 'hello hello'
    # 如果直接再模块中输入print __name__得到的是__main__
    if __name__ == '__main__':
        print __name__
    # 文件被导入时,能够直接被执行的代码不需要被执行
        print 'lily 开发的程序'
        say_hello()

    1、

    在很多python文件中会看到以下格式的代码
      #导入模块
      #定义全部变量
      #定义类
      #定义函数

      #再代码的下方
      def main():
          pass
      if  __name__ =='__main__':
          main()
    """
    import  test10

    展开全文
  • linuxpython文件路径操作

    千次阅读 2016-09-26 22:54:16
    1.如何在linux下通过import来导入自定义的模块 2.关于os.path的使用
  • 文本文件中的 回车 在不同操作系统中所用的字符表示有所不同。 Windows: \r\n Linux/Unix: \n Mac OS: \rpython读写文件 open()中 r rb rt rt模式下,python读取文本时会自动把\r\n转换成\n.使用’r’...
  • Linux读取doc,docx文件

    千次阅读 2019-09-09 10:50:34
    docx文件 利用python-docx包,好像暂时不支持python3。 test.py # -*- coding:utf-8 -*- import sys import docx path = sys.argv[1] file = docx.Document(path) for para in file.paragraphs: print para.text ...
  • python读取access文件并入库

    万次阅读 2016-02-26 15:47:10
    Python读取access文件时和读取Excel文件不是很一样,当然用的工具也不一样,在读取excel中的数据时用的是xlrd,而读取access文件时用的则是pypyodbc。 简要安装过程:1、首先要安装access驱动(AccessRuntime_x64_...
  • python 不同方式读取文件速度不同

    千次阅读 2017-09-21 16:45:24
    1、按行读取较慢较耗时: srcFiles = open('inputFile.txt', 'r') for file_path in srcFiles: file_path = file_path.rstrip() 2、快速读取所有行: with open('inputFile.txt', 'r') as fRead: ...
  • python文件的按行读取

    万次阅读 2010-06-16 21:06:00
       传统的读法,全部读出,按行处理: #!~/python2.5.2/bin/python fp=open("./ps.txt", ...    推荐读取方法,使用文件迭代器, 每次只读取和显示一行,读取文件时应该这样
  • python多线程读取同一个文件

    万次阅读 2015-05-13 21:36:06
    python多线程读取同一个文件 多线程读取同一个文件,要求不能重复,不能遗漏。 最开始尝试了一种方法(后来实践证明是无效的) 主线程分配给每个读线程需要读取文件中哪些行, 比如线程1读取1-10行,线程2...
  • python连接远程服务器读取文件

    千次阅读 2019-09-29 17:58:33
    python连接远程服务器读取文件 import os import paramiko def get_params(host, cmd, cont): host = host user = 'root' s = paramiko.SSHClient() s.load_system_host_keys() s.set_missing_host_key_p...
  • 使用第三方包pyhive。 from pyhive import hive import pandas as pd import sys reloar(sys) sys.setdefaultencoding('utf8') def LinkHive(sql_select): connection = hive.Connection(host='主机名') ...
  • python文件open file 中文乱码问题

    千次阅读 2014-09-23 14:04:30
    自己编写的python小程序中使用open方法打开文件,readlines读取每行,然后每行根据正则表达式进行匹配处理。 对于处理文件中的中文字符显示出来是乱码。 问题代码: #打开文件逐行读取  data=open...
  • 准备工作:设置指定的路径,使用os.listdir() 方法获取路径下所有的文件 import os path = "d:\\data" # 设置路径 dirs = os.listdir(path) # 获取指定路径下的文件 循环判断:使用os.path.splitext()方法筛选出...
  • python 读取中文文件名/中文路径

    万次阅读 2016-04-26 15:39:30
    python直接读取中文路径的文件时失败,可做如下处理:  inpath = 'C:\Users\chenjunli\PycharmProjects\mytest1\cc.txt'  uipath = unicode(ipath , "utf8") 然后用"uipath"经过编码后的路径去open()即可: ...
  • 读取docx文档 使用的包是python-docx 1. 安装python-docx包 sudo pip install python-docx2. 使用python-docx包读取数据 #encoding:utf8 import docx doc = docx.Document('test.docx') docText = '\n'.join(...
  • python读取文件函数read()、readline()、readlines()的区别
1 2 3 4 5 ... 20
收藏数 75,440
精华内容 30,176
关键字:

python读取linux文件