PyCharm中的最大文件大小

时间:2016-06-08 07:29:32

标签: pycharm

我正在使用PyCharm社区版2016,我注意到我无法打开大数据输入文件或日志(20MB)。编辑只是说“文件XXX是大(SIZE)”。

不仅如此,但似乎没有办法改变限制。官方文档提到了一种增加使用intellisense的最大大小的方法,但没有提到可以打开的最大文件大小。这可能是真的吗?这真的是一个IDE无法以任何方式打开大型日志吗?

4 个答案:

答案 0 :(得分:3)

您需要在以下某个位置制作idea.properties文件。

  • 对于Windows:%USERPROFILE%.PyCharm XX
  • For * NIX:in~ / .PyCharm XX
  • 对于Mac OS X:在〜/ Library / Preferences / PyCharm XX

在该文件中,您需要添加一行以指定最大文件大小(以KB为单位):

idea.max.intellisense.filesize=25000

可以在https://www.jetbrains.com/help/pycharm/2016.1/file-idea-properties.html

找到可以更改的其他属性

答案 1 :(得分:2)

对于Pycharm 2018,您可以帮助->编辑自定义属性

然后添加此行

idea.max.content.load.filesize=25000

然后重新启动 pycharm。

答案 2 :(得分:1)

更改 Mac OS 的Filelimit Pycharm:

  • 您需要转到程序文件夹
  • 单击Pycharm图标上的显示软件包内容以打开PyCharm应用程序内容
  • 您需要转到 Contents / bi n并打开 idea.properties 文件
  • 现在,将 idea.max.intellisense.filesize 的值从2500更改为您会喜欢的值。我将我的数字更改为25000。
#!/usr/bin/env python

import argparse
import curses
import os
import select
import signal
import subprocess
import time


class Panes:
    """
    curses-based app that divides the screen into a number of scrollable
    panes and lets the caller write text into them
    """

    def start(self, num_panes):
        "set up the panes and initialise the app"

        # curses init
        self.num = num_panes
        self.stdscr = curses.initscr()
        curses.noecho()
        curses.cbreak()

        # split the screen into number of panes stacked vertically,
        # drawing some horizontal separator lines
        scr_height, scr_width = self.stdscr.getmaxyx()
        div_ys = [scr_height * i // self.num for i in range(1, self.num)]
        for y in div_ys:
            self.stdscr.addstr(y, 0, '-' * scr_width)
        self.stdscr.refresh()

        # 'boundaries' contains y coords of separator lines including notional
        # separator lines above and below everything, and then the panes
        # occupy the spaces between these
        boundaries = [-1] + div_ys + [scr_height]
        self.panes = []
        for i in range(self.num):
            top = boundaries[i] + 1
            bottom = boundaries[i + 1] - 1
            height = bottom - top + 1
            width = scr_width
            # create a scrollable pad for this pane, of height at least
            # 'height' (could be more to retain some scrollback history)
            pad = curses.newpad(height, width)
            pad.scrollok(True)
            self.panes.append({'pad': pad,
                               'coords': [top, 0, bottom, width],
                               'height': height})

    def write(self, pane_num, text):
        "write text to the specified pane number (from 0 to num_panes-1)"

        pane = self.panes[pane_num]
        pad = pane['pad']
        y, x = pad.getyx()
        pad.addstr(y, x, text)
        y, x = pad.getyx()
        view_top = max(y - pane['height'], 0)
        pad.refresh(view_top, 0, *pane['coords'])

    def end(self):
        "restore the original terminal behaviour"

        curses.nocbreak()
        self.stdscr.keypad(0)
        curses.echo()
        curses.endwin()



def watch_fds_in_panes(fds_by_pane, sleep_at_end=0):
    """
    Use panes to watch output from a number of fds that are writing data.
    fds_by_pane contains a list of lists of fds to watch in each pane.
    """
    panes = Panes()
    npane = len(fds_by_pane)
    panes.start(npane)
    pane_num_for_fd = {}
    active_fds = []
    data_tmpl = {}
    for pane_num, pane_fds in enumerate(fds_by_pane):
        for fd in pane_fds:
            active_fds.append(fd)
            pane_num_for_fd[fd] = pane_num
            data_tmpl[fd] = bytes()
    try:
        while active_fds:
            all_data = data_tmpl.copy()
            timeout = None
            while True:
                fds_read, _, _ = select.select(active_fds, [], [], timeout)
                timeout = 0
                if fds_read:
                    for fd in fds_read:
                        data = os.read(fd, 1)
                        if data:
                            all_data[fd] += data
                        else:
                            active_fds.remove(fd)  # saw EOF
                else:
                    # no more data ready to read
                    break
            for fd, data in all_data.items():
                if data:
                    strng = data.decode('utf-8')
                    panes.write(pane_num_for_fd[fd], strng)
        time.sleep(sleep_at_end)
    except KeyboardInterrupt:
        panes.end()
        raise

    panes.end()



def parse_args():

    parser = argparse.ArgumentParser()

    parser.add_argument("-s", "--sleep-at-end", type=float, metavar="seconds",
                        help="time to sleep for at end before clearing screen",
                        default=0.)

    parser.add_argument("commands", nargs="+", metavar="command",
                        help=("command to run in each pane "
                              "(if the command takes arguments, then quotation marks "
                              "will be needed around a command and its "
                              "arguments if invoking this from a shell)")
                        )

    return parser.parse_args()


def main():
    opts = parse_args()
    num_panes = len(opts.commands)

    procs = [subprocess.Popen(command,
                              shell=True,
                              stdout=subprocess.PIPE,
                              stderr=subprocess.PIPE)
             for command in opts.commands]

    try:
        watch_fds_in_panes([[proc.stdout.fileno(), proc.stderr.fileno()]
                            for proc in procs],
                           sleep_at_end=opts.sleep_at_end)
    except KeyboardInterrupt:
        print("interrupted")
        for proc in procs:
            proc.send_signal(signal.SIGINT)
        time.sleep(1)
        for proc in procs:
            proc.send_signal(signal.SIGKILL)

            
if __name__ == '__main__':
    main()
  • 保存文件))),然后重新启动Pycharm

答案 3 :(得分:0)

对于win10

  • 对于胜利10,您可以在

    中看到文件idea.properties

    C:\Program Files\JetBrains\PyCharm 2018.2.5\bin