- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在为我的代码寻求一些帮助,如下所示:
for file in file_name :
if os.path.isfile(file):
for line_number, line in enumerate(fileinput.input(file, inplace=1)):
print file
os.system("pause")
if line_number ==1:
line = line.replace('Object','#Object')
sys.stdout.write(line)
我想修改一些以前提取的文件,以便用 matplotlib 绘制它们。为此,我删除了一些行,评论了一些其他行。
我的问题如下:
sử dụng for line_number, line in enumerate(fileinput.input(file, inplace=1)):
只给我 5 个先前提取的文件中的 4 个(当查看 file_name 列表时包含 5引用!)
sử dụng for line_number, line in enumerate(file):
给我之前提取的 5 个文件,但我不知道如何在不创建另一个文件的情况下使用同一个文件进行修改...
您对这个问题有什么想法吗?这是正常问题吗?
câu trả lời hay nhất
有许多事情可能对您有所帮助。
Đầu tiên tên_tệp
似乎是一个文件名列表。将它命名为 file_names
可能更好,然后您可以为每个文件使用 tên_tệp
。您已验证这确实包含 5 个条目。
enumerate()
函数用于在枚举项目列表时提供帮助,以便为每个循环提供索引和项目。这使您不必使用单独的计数器变量,例如
for index, item in enumerate(["item1", "item2", "item3"]):
print index, item
将打印:
0 item1
1 item2
2 item3
这并不是真正需要的,因为您已选择使用 fileinput
库。这旨在获取文件列表并在一个循环中遍历所有文件中的所有行。因此,您需要稍微调整一下您的方法,假设您的文件列表被称为 file_names
然后您编写如下内容:
# Keep only files in the file list
file_names = [file_name for file_name in file_names if os.path.isfile(file_name)]
# Iterate all lines in all files
for line in fileinput.input(file_names, inplace=1):
if fileinput.filelineno() == 1:
line = line.replace('Object','#Object')
sys.stdout.write(line)
这里的要点是最好在将列表传递给 fileinput
之前预过滤任何非文件名。我将由您来修复输出。
fileinput
提供了许多函数来帮助您确定当前正在处理的文件或行号。
关于python - enumerate(fileinput.input(file)) 和 enumerate(file) 的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31006251/
Tôi muốn biết liệu tôi có thể truy cập các tệp được đặt trong thư mục conf của Tomcat hay không. Thông thường, tôi sẽ đặt nhiều cấu hình ứng dụng web vào tệp này, bên ngoài cuộc chiến. Tôi muốn sử dụng đường dẫn lớp độc lập với hệ thống tệp. Trước đây tôi đã sử dụng các tệp lib
Tôi có tập lệnh PowerShell nhận danh sách các tệp và di chuyển các tệp đáp ứng các tiêu chí nhất định. Tại sao vòng lặp foreach chạy ngay cả khi đối tượng trống? Tôi cho rằng nếu $i không tồn tại thì nó sẽ không chạy. Nhưng nếu $filePath
Tôi đã đặt BasicAccountRule.drl trong ứng dụng web của mình tại: C:/workspace/exim_design/src/main/resources/rules/drl/i
Tôi đã kiểm tra bằng File.open('file.txt').class và File.open('file.txt').readlines.class và cái trước trả về một Tệp và cái sau trả về một Arra
Tôi đang cố gắng sử dụng FileOutputStream để xóa tệp sau khi viết nội dung vào đó. Đây là mã tôi đã sử dụng để viết: Private void writeContent(File file, String fileC
Tôi đang thử kiểm tra ví dụ cổ điển của Wordcount bằng cách sử dụng api batch flink và python. Câu hỏi của tôi là thay đổi nguồn dữ liệu từ env.from_elements() thành env.read_text()
Tôi đang cố gắng tạo một chương trình có thể xử lý nhiều tệp khác nhau cùng một lúc. Ý tưởng của tôi là tạo một mảng gồm 20 FILE* để khi đạt đến giới hạn này, tôi có thể đóng một trong số chúng và mở tệp mới được yêu cầu. Đối với điều này, tôi đã nghĩ ra một chức năng chọn một tùy chọn
Tôi có hai tệp A và B Tệp A: 976464 792992 Tệp B TimeStamp,Record1,976464,8383,ABCD Tôi muốn tìm kiếm từng bản ghi trong Tệp A và Tệp B và in các bản ghi phù hợp. in
Tôi có một số tệp thuộc tính được lưu trong bản đồ. Ví dụ: Map map = new HashMap<>(); map.put("1", "One"); map.put("2", "Two");
Tôi đang cố gắng tìm ra một tập lệnh lấy một tệp chứa danh sách các tệp (mỗi dòng là một đường dẫn tệp, tức là đường dẫn/đến/tệp) và hợp nhất chúng thành một tệp duy nhất. Ví dụ: list.text -- path/to/fil
Để sử dụng File.CreateText() và File.AppendText() bạn phải: Mở luồng bằng cách gọi một trong các phương thức này Viết thông báo Đóng luồng Đang xử lý luồng Để sử dụng File.AppendAllText()
Khi sử dụng rsync, làm cách nào tôi có thể đổi tên tệp khi sao chép bằng tham số --files-from? Tôi có khoảng 190.000 tệp, mỗi tệp cần được đổi tên khi sao chép từ nguồn tới đích. Tôi dự định đưa danh sách các tệp vào một tệp văn bản được chuyển tới --files
Tôi đang sử dụng Spring trong một ứng dụng không phải máy chủ (chỉ cần biên dịch và chạy nó từ main() của một lớp trong Eclipse). Vấn đề của tôi là FileSystemXmlApplicationContext mới
QNX (Neutrino 6.5.0) sử dụng triển khai mã nguồn mở của ksh làm vỏ của nó. Nhiều tập lệnh được cung cấp, bao gồm cả tập lệnh khởi động hệ thống, sử dụng các lệnh như if ! test /dev/slog -ef /dev/slog
Khi tôi cố mở tệp xls được tải xuống từ ứng dụng của mình, tôi gặp lỗi này: excel không thể mở tệp vì định dạng tệp hoặc phần mở rộng tệp
Có một số khái niệm liên quan, đó là con trỏ tệp, luồng và bộ mô tả tệp. Tôi biết rằng con trỏ tệp là con trỏ tới kiểu dữ liệu FILE (được khai báo trong ví dụ FILE.h và struct_FILE.h). Tôi biết rằng các bộ mô tả tệp là int, ví dụ: các thành viên
Ok, điều này thật dễ dàng... Tôi mới làm quen với Groovy và tôi hy vọng triển khai logic sau: def testFiles = findAllTestFiles(); Cho đến nay tôi đã nghĩ ra đoạn mã sau để in thành công tất cả các tệp.
Tôi hiểu lý do tại sao nội dung sau đây cắt bớt nội dung của tệp: Get-Content | Out-File Điều này là do Out-File chạy trước, làm trống tệp trước khi Get-Content có cơ hội đọc nó. Nhưng khi tôi nếm thử
Xin chào, tôi đang cố gắng biểu thị vị trí tệp dưới dạng một biến vì cuối cùng tập lệnh sẽ được chạy trên một máy khác. Đây là mã tôi đã thử và sau đó tôi nhận được lỗi. Đối với tôi, có vẻ như cách python thêm "\" là nguyên nhân gây ra sự cố. Nếu đúng như vậy, làm thế nào để tôi
Tôi có một tệp đầu vào chỉ chứa một dòng: $ cat input foo bar Tôi muốn sử dụng dòng này trong tập lệnh của mình, theo như tôi biết thì có 3 cách: line=$(cat input) line=$( input". .,
Tôi là một lập trình viên xuất sắc, rất giỏi!